Issue #273

Monday · August 10, 2026

🥖 Palate Cleanser

Hacker summer camp has just wrapped up in Vegas. Hope you had fun for those who attended. There were quite a few AWS-related talks, at DEF CON Cloud Village and elsewhere, but not much of the content is online yet except for a couple of decks. Hopefully it starts rolling in next week.

While everyone was in Vegas, someone pushed a malicious commit to the keyv repository and by the end of the day a self-propagating worm had hundreds of npm packages, the cacheable ecosystem included. It sux for us because the malware scrapes STS account metadata, Secrets Manager values across seventeen regions, SSM Parameter Store, and, on Linux runners with sudo, GitHub Actions secrets out of process memory. If a build host ran an install that day, rotate everything that host's role could reach, not just the npm token.

Luckily AWS published eight security bulletins to keep us entertained. Seven of them are about agent tooling. Bedrock AgentCore's harness failed to validate input. Kiro's IDE and CLI resolved executables out of an untrusted project directory on Windows, which is nowhere near Kiro's first code execution bug this year. Three separate MCP servers shipped by AWS itself broke: AWS Transform on path handling, DocumentDB on authorization in its aggregation pipeline tool, and Amazon MQ, which hands over broker credentials and OAuth tokens if you prompt inject it. Strands Agents Tools managed two, an insecure direct object reference in the memory tools and a prompt injection that walks straight through the shell tool's consent gate. The eighth is SSH host key verification disabled in the AWS CLI EMR helpers, which is almost nostalgic.

📋 Chef's selections

OffGuard: Breaking the Most Popular AI Gateway from Auth Bypass to Cloud Compromise (Slides)

by Yaara Shriki

LiteLLM, the open source proxy many orgs park in front of Bedrock and friends, will fetch any URL an admin configures and hand back the response, instance metadata at 169.254.169.254 included. IMDSv2 is supposed to stop exactly that, but the pass-through strips a configured prefix before forwarding headers, so x-pass-X-aws-ec2-metadata-token arrives as the real header and the instance role credentials come straight back. Creating that route needs the admin master key, but it's included in the quickstart guides, tutorials and Docker Compose files as sk-1234.

CloudBashing: Exploiting free CloudShells for mining, networking, exfil, and persistence at scale (Slides)

by Jenko Hwong and Chris Ryan

CloudShell hands you three sessions that are not the same thing: the console session, an IAM API session minted by STS token exchange, and the terminal websocket. Revoke the API token mid-incident and the websocket carries on regardless. Jenko and Chris reversed the private CloudShell REST protocol to automate the whole thing at scale, then made themselves at home with a second uid 0 account, and root-owned files in $HOME that survive a container reset. Seems bad for incident response.

🥗 AWS security blogs

🍛 Reddit threads on r/aws


🤖 Dessert

Every machine-tracked change this week. Nobody else assembles this.

🧁 IAM permission changes

🍪 API changes

🍹 IAM managed policy changes

☕ CloudFormation resource changes

No resource updates this week.

🎮 Amazon Linux vulnerabilities

📺 AWS security bulletins

🚬 Security documentation changes

Get every AWS security change,
on a plate every Monday.

6,700+ engineers, builders and CISOs let us diff the AWS changelog every week.