Product1 distinct publisher3 min readUpdated
AWS patched seven SDKs and called it a defense-in-depth enhancement. Pi says all seven third-party deployments it tested handed over live credentials, which puts the region field on your audit list.
The Product Desk · Product desk
Compiled by The Product DeskSomething wrong?How this is made
The missing check sat where it was guaranteed to multiply. AWS generates SDK clients for more than 400 services from shared service models [6], so an absent validation in the generator is not one bug in one client library. Python and Ruby had guarded the region field for years; most of the rest had not [7]. The correction runs to a few lines: validate the region as a host label, letters and digits and hyphens, before it reaches the hostname [8]. Because that validation lives inside each generated SDK rather than in one shared place, AWS wrote it seven times [9].
Pi reported the bug on Oct. 14, 2025, and a first patch was committed within a week [10][11]. The advisories did not go out until Jan. 8 and Jan. 9, with Go v2 last [12]. That is about 86 days from report to advisory [1], roughly 79 of them with corrected code already in place [2]. For anyone maintaining lockfiles, the useful question is per language: did you pick up the commit, or are you still waiting on the advisory to trigger a bump?
The audit itself is narrow enough to do properly. Plenty of applications let a user pick the region [18], and that is the entire precondition: a value that arrives from outside and lands in a client constructor. What made the EKS engagement worse than a leaked signature is the call being redirected. AssumeRoleWithWebIdentity carries a bearer token in its body, in plaintext [4], so the testers received the pod's Kubernetes service account token and replayed it to STS for live credentials inside the customer's account [5]. Any workload sitting behind an OIDC or Cognito trust path has that same shape [4].
AWS's advisories describe the change as a defense-in-depth enhancement rather than a vulnerability, and say validating that input is the developer's job under the shared responsibility model [14]. That position is defensible and also settles nothing, because the responsibility it assigns is exactly the one the audit above discharges. One CVE exists across the seven patched SDKs [3]: .NET's CVE-2026-22611, rated low at 3.7 [13], which is what a scanner will surface. Pi, which found the class by handing its own product the single report and letting it search for the behavior rather than the syntax [19], says it then tested third-party platforms that embed an AWS SDK and expose the region field, and got live credentials on a callback server from seven of seven [15]. Some were security vendors, and all were remediated before publication [16]. Pi raised $35 million in June [20], so weigh the seven-of-seven accordingly; its narrower point survives the discount, which is that a per-instance score rates one outcome in one place and cannot express a class of behavior a generator has copied into thousands of clients [17].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Amazon Web Services patched a flaw across seven of its SDKs after product security startup Pi Inc. traced a single bug report to roughly 2,500 instances of the same defect.
Every AWS SDK builds the hostname it calls from a template, with the region dropped into https://{service}.{region}.amazonaws.com; a valid region looks like us-east-1, and on the vulnerable code paths nothing checked for that.
Pi's researchers supplied the region value "@attacker.com#"; the SDK built https://[email protected]#.amazonaws.com and signed a request to it, because a URL parser reads everything before the @ as a username and discards everything after the #, leaving attacker.com.
Redirecting an ordinary API call leaks a request signature, but the AssumeRoleWithWebIdentity call made by EKS workloads, Cognito applications and OpenID Connect integrations carries a bearer token in its body, in plaintext.
In one authorized engagement against a target running inside EKS, the redirected call carried the pod's Kubernetes service account token to a server the testers controlled, and replaying it to AWS Security Token Service returned live credentials inside the customer's account.
AWS generates SDK clients for more than 400 services from shared service models, so a missing check in the generator lands everywhere at once.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Specific and checkable, but single-sourced from the finder
The technical account is unusually concrete — exact endpoint template, the '@attacker.com#' payload, the URL-parsing semantics, the host-label fix, a named CVE with a CVSS value, and a dated disclosure timeline — and those artifacts are externally verifiable in principle. But the cluster contains exactly one publisher relaying one vendor's disclosure; no AWS advisory text, no affected-platform names, and no independent reproduction are present, so quantitative assertions (~2,500 instances, seven of seven exploitable) rest on the finder's word.
Fixes shipped and downstream vendors remediated; end-user uptake unknown
There is real, dated remediation activity rather than intent: patches across seven SDKs, January advisories, a CVE assignment, and seven affected third-party platforms notified and fixed before publication. What is missing is any measure of downstream adoption — how many applications have upgraded to the patched SDK versions, or how many deployments still pass unvalidated regions — so adoption is credited for supplier-side rollout only.
Mildly overstated: real mechanism, finder-supplied scale
The core defect and at least one credential-theft outcome are concretely evidenced, so this is not vapor. The overstatement is in framing and scale: 'roughly 2,500 instances' and 'seven of seven exploitable' come from a vendor marketing a variant-discovery platform weeks after a $35 million round, AWS rated the one CVE 3.7 low and declined to call it a vulnerability, exploitation requires an application to expose the region field, and the affected third parties were already remediated before publication. Headline severity therefore runs somewhat ahead of independently verifiable impact.
Finder-published disclosure with product and vendor-reputation stakes on both sides
Both principals have visible motives that shape the framing. Pi published the research, credits its own platform for abstracting the bug into an anti-pattern and finding ~2,500 instances, and closed a $35 million round in June, so severity and scale claims double as product proof. AWS has the mirrored incentive to minimize — 'defense-in-depth enhancement,' one low CVE, developer responsibility under the shared responsibility model. The publisher also discloses AWS Marketplace affiliate monetization in the same page, a further alignment worth noting.
Moderate: mechanism credible, magnitude unconfirmed
Confidence is anchored by verifiable artifacts — a CVE identifier, dated advisories, a fix description consistent with known URL-parsing behavior — but limited by a single publisher relaying a single interested party, an unresolved severity dispute between AWS and Pi, and unnamed affected platforms. The mechanism and the shipped patches deserve high confidence; the instance count and universal exploitability claim deserve materially less.
build
Dropping long-lived AWS keys is half an EKS migration; the cluster still gets a vote1 distinct publisher
build
Identical Helm charts, three clouds, one OOMKill loop: portability is a claim about YAML1 distinct publisher
build
Two Actions, One Loose Policy: The Bedrock Wildcards That Widen A Least-Privilege Grant1 distinct publisher
leadership
CrowdStrike buys SGNL, and standing privilege becomes a line item you have to defend1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 24, 2026