Skip to content

Build Also reported elsewhere3 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 AWS2
February 14, 2026AgentCore moved to IMDSv2 for newly deployed agents6
September 29, 2026Wider default-role permissions removed, 278 days after first report7
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 [8]. It does not check intent, and it does not check whether a human or a model typed the prompt [8]. 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 [9]. Break any one and the chain ends as a chat transcript [9]. In the reported case the first link was one HTTP request from the model [4]. The third was a default execution role whose permissions were not scoped to that one agent [3].

The write-up turns this into a review of five permission patterns in your own role [11]. 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 [10]. The write-up puts the review at about an hour [17]. That review covers roles a team widened until a demo stopped failing [16].

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

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 [15]. 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 [8][16]. The write-up's own summary is that the blast radius was a role property, not a model property [12].

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

Evidence40
Adoption
Not scored
Hype gap+15
Incentives
Not scored
Confidence40
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]

    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
  3. [3]

    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

Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.

Add to ChatGPTAdd to Claude

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

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Loading related stories