Skip to content

Build Independently confirmed3 publishers 2 min read Published

Zenity Labs: one prompt to a public AgentCore agent could return temporary credentials tied to a default role not scoped to that agent

Zenity Labs says one prompt to a public Bedrock AgentCore agent returned credentials for a role scoped to every agent in the account and region. AWS had removed the wider default permissions by September 29, 2026, but roles a team copied or widened sit in its own account.

The Engineer · Build desk

Send a correction

Illustration accompanying Zenity Labs: one prompt to a public AgentCore agent could return temporary credentials tied to a default role not scoped to that agent
Generated illustration
AWS changed AgentCore before the SecTor disclosure Dates in the AgentCorruption case, from the first report to AWS to Zenity Labs' public disclosure, per the DEV Community write-up.

Timeline: reported to AWS from December 25, 2025; IMDSv2 for newly deployed agents by February 14, 2026; wider default-role permissions removed by September 29, 2026, 278 days after first report; Zenity Labs disclosure at SecTor, Toronto, October 8, 2026.

AWS changed AgentCore before the SecTor disclosure
DateEventClaim
December 25, 2025Research first reported to AWS7
February 14, 2026AgentCore moved to IMDSv2 for newly deployed agents9
September 29, 2026Wider default-role permissions removed, 278 days after first report10
October 8, 2026Zenity Labs discloses AgentCorruption at SecTor, Toronto1

What happened

  • Zenity Labs disclosed the chain, named AgentCorruption, at the SecTor conference in Toronto on October 8, 2026, after reporting it to AWS starting December 25, 2025.
  • The prompt reached the instance metadata service at 169.254.169.254, returned the workload's temporary credentials, and used a default execution role not scoped to that one agent.
  • From there the reported chain covered account discovery, invoking other agents, reading conversations, pulling images and source, reading secrets, and writing persistent memories.

Why it matters

  • Who's exposed exposure Roles that a team copied from the default, accepted as generated, or widened until a demo worked are policies in the team's own account. A platform default change does not edit them.
  • Who has to decide decision Teams with public-facing agents have to read each execution role against five patterns: broad invoke, account-wide list, cross-user reads, broad secrets read and cross-agent memory write.
  • What doesn't add up contradiction AWS called the original behavior documented and expected, yet removed the wider default permissions 278 days after the first report. Customers cannot tell from this material which framing governs older deployments.

An agent's execution role decides what it can reach. The agent presents signed credentials, and the cloud checks the signature and the policy [5]. It does not check intent, and it does not check whether a human or a model typed the prompt [5]. After the metadata request, nothing in that path concerns the model.

The DEV Community write-up of the Zenity disclosure frames the chain as three links. Content has to reach a tool, the tool has to reach credentials, and the credentials have to reach resources the agent has no business touching [6]. Break any one and the chain ends as a chat transcript [6]. In the reported case the first link was one HTTP request from the model [3]. The third was a default execution role whose permissions were not scoped to that one agent [2].

The write-up turns this into a review of five permission patterns in your own role [12]. They are an invoke permission scoped to all agent runtimes in a region instead of a named list; list or describe access wide enough to catalogue the account's agents, log groups and other resources, all of them; a read permission on conversations or events across agents and users; a secrets read broad enough to reach credentials the platform was meant to keep from the agent; and a memory write that crosses agents or users [11]. The write-up puts the review at about an hour [15]. That review covers roles a team widened until a demo stopped failing [14].

AWS moved newly deployed agents to IMDSv2 by February 14, 2026, within 51 days of the first report [9][16]. The wider default-role permissions took until September 29, which the summary counts as 278 days after the report [10]. That was at least nine days before the SecTor talk [17].

The write-up says IMDSv2 applies to newly deployed agents. It does not say what happened to agents already running, so an older deployment needs a direct check.

AWS described the original behavior as documented and expected, according to the disclosure summary, and pointed customers to granting a role only the permissions its workload needs [13]. That is the position as the write-up reports it. The material does not include an AWS statement.

We think the audit claim holds on the mechanics alone. Because the cloud checks the role's policy, the policy is the document that sets the damage, and it is in the customer's account [5][14]. The write-up's own summary is that the blast radius was a role property, not a model property [8].

What to watch

  • Whether AWS publishes its own statement or advisory on the AgentCore default role, since the AWS position here comes only through a secondary write-up.
  • Whether AWS confirms IMDSv2 now applies to AgentCore agents deployed before February 14, 2026.
  • Whether Zenity Labs releases the full AgentCorruption write-up with the exact policy statements involved.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence55
Adoption
Not scored
Hype gap+30
Incentives60
Confidence58

Perspective Coverage

4 publishers
Builder
Builder 41%
Operator
Operator 41%
Investor
Investor 18%
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    On October 8, 2026, at the SecTor conference in Toronto, Zenity Labs disclosed a chain it called AgentCorruption in Amazon Bedrock AgentCore, the managed platform AWS offers for deploying and operating AI agents.

    Reported Supported Source: DEV Community write-up of the Zenity Labs disclosureView cited source
  2. [2]

    According to the disclosure summary, a single prompt to one public-facing agent could reach the instance metadata service at 169.254.169.254, return the temporary credentials assigned to that workload, and then use a default execution role whose permissions were not scoped to that one agent.

    Reported Supported Source: DEV Community write-up, citing the Zenity Labs disclosure summaryView cited source
  3. [3]

    In the reported case the model made one HTTP request, and everything after that was IAM.

    Reported Supported Source: DEV Community write-upView cited source
  4. [4]

    The reported chain included discovery across the account, invocation of other agents in the region, reading conversations across agents and users, pulling container images and reading source code, reading API keys and tokens from a secrets store, and writing memories that persisted after the session ended and redirected later conversations.

    Reported Supported Source: DEV Community write-up of the Zenity Labs disclosureView cited source
  5. [5]

    An agent holding an execution role presents signed credentials, and the cloud checks the signature and the policy, not the intention behind the request and not whether a human or a model typed the prompt.

    Reported Supported Source: DEV Community write-upView cited source
  6. [6]

    A prompt injection becomes an account problem only when the content can reach a tool, the tool can reach credentials, and the credentials can reach resources the agent has no business touching; break any one of the three links and the chain ends as a chat transcript.

    Reported Supported Source: DEV Community write-upView cited source
  7. [7]

    The research had been reported to AWS starting December 25, 2025.

    Reported Supported Source: DEV Community write-up of the Zenity Labs disclosureView cited source
  8. [8]

    The blast radius was a role property, not a model property.

    Reported Supported Source: DEV Community write-upView cited source
  9. [9]

    AWS moved AgentCore to IMDSv2 for newly deployed agents by February 14, 2026.

    Reported Supported Source: DEV Community write-up, citing the disclosure summaryView cited source
  10. [10]

    The summary reports that the wider default-role permissions were removed by September 29, 2026, 278 days after the first report.

    Reported Supported Source: DEV Community write-up, citing the disclosure summaryView cited source
  11. [11]

    The write-up lists five dangerous permission patterns: an invoke permission scoped to all agent runtimes in a region, not a named list; a list or describe permission that enumerates every agent, log group or resource in the account; a read permission on conversations or events across agents and users; a secrets read broad enough to reach credentials the platform was supposed to keep away from the agent; and a memory write permission that crosses agents or users.

    Reported Supported Source: DEV Community write-upView cited source
  12. [12]

    The write-up turns the chain into five concrete checks against your own role policy, to run before the agent meets the public.

    Reported Supported Source: DEV Community write-upView cited source
  13. [13]

    AWS described the original behavior as documented and expected, and pointed customers to the practice of granting an execution role only the permissions its workload needs.

    Reported Insufficient Source: DEV Community write-up, citing the disclosure summaryView cited source
  14. [14]

    If you copied a default role, accepted a generated role, or widened a role until the demo stopped failing, your blast radius is a policy document sitting in your own account.

    Reported Insufficient Source: DEV Community write-upView cited source
  15. [15]

    Reading the role policy needs an hour and a refusal to skim, not a research team.

    Reported Insufficient Source: DEV Community write-upView cited source
  16. [16]

    AWS's IMDSv2 change for newly deployed agents came within 51 days of the first report.

    Derived Insufficient
  17. [17]

    The September 29 removal date came at least nine days before the October 8 SecTor disclosure.

    Derived Insufficient

Sources

3 independent publishers whose own reporting we read for this story.

  1. dev.to

    1 article · October 16, 2026

    One Prompt Took Over Every Agent in the Account: The Default Role Is the Blast Radius
  2. finance.yahoo.com

    1 article · October 8, 2026

    Zenity Labs Discloses AgentCorruption, a Chain of AWS AgentCore Flaws That Allowed One Prompt to Take Over All AgentCore Agents Within an AWS Account and Region
  3. labs.zenity.io

    3 articles · October 8, 2026

    Security Research | AgentCorruption: One Role to Rule Them All | Zenity Labs
  4. zenity.io

    1 article · October 7, 2026

    AgentCorruption: AWS AgentCore Flaws Let One Prompt Hijack All Agents

Topics and entities

Topics