TL;DR: A prototype pollution bug plus missing header validation in Axios could have chained into AWS credential theft, but Node.js runtime checks blocked the exploit path, according to WorkOS. The pattern still matters because dependency composition can convert low-severity findings into high-impact identity and secrets exposure.
NHIMG editorial — based on content published by WorkOS: Gadget chains, low-severity bugs, and how they become critical
Questions worth separating out
Q: What breaks when a prototype pollution bug combines with a request-building library?
A: The failure is compositional.
Q: Why do low-severity dependency bugs still matter for cloud identity risk?
A: Low-severity bugs matter when they can alter how a downstream component handles headers, tokens, or metadata requests.
Q: How can security teams know if a gadget chain risk is real?
A: Look for a vulnerable source that creates tainted object state and a downstream consumer that performs a sensitive operation without fully validating inherited properties.
Practitioner guidance
- Map gadget-prone dependency paths Identify libraries that merge user input, construct headers, or transform objects before they reach network, database, or file operations.
- Validate protocol-sensitive fields at the library boundary Enforce rejection of CRLF, path separators, shell metacharacters, and similar control characters in the component that builds the request or command.
- Review secrets-exposing flows for composition risk Trace how a low-severity parser flaw could affect metadata access, token handling, or credential retrieval later in the same request path.
What's in the full article
WorkOS's full analysis covers the operational detail this post intentionally leaves for the source:
- Line-by-line walkthrough of the Axios CVE-2026-40175 request path and header merge behavior
- The exact runtime guard that blocked CRLF injection in standard Node.js transports
- Why custom adapters and nonstandard transports still deserve separate validation checks
- Examples of other gadget chains involving class-transformer, knex.js, and express-fileupload
👉 Read WorkOS's analysis of Node.js gadget chains and Axios credential theft risk →
Node.js gadget chains: are your controls catching cross-library risk?
Explore further
Low-severity dependency bugs become identity risks when they alter trust boundaries. The article shows that a prototype pollution issue is not only an application bug, but a way to redirect trust into a request builder that can reach cloud metadata. That moves the problem into NHI territory because the target is not just data flow, but credential-bearing infrastructure. Practitioners should treat dependency composition as part of non-human identity threat modeling.
A few things that frame the scale:
- 88.5% of organisations acknowledge that their non-human IAM practices lag behind or are merely on par with their human identity and access management efforts, according to The 2024 Non-Human Identity Security Report.
- Only 19.6% of security professionals express strong confidence in their organisation's ability to securely manage non-human workload identities, which shows how quickly trust assumptions erode when machines and dependencies become part of the access path.
A question worth separating out:
Q: What should teams do when a runtime already blocks part of the exploit chain?
A: Treat the runtime protection as useful but incomplete. If a library can be used with custom adapters, alternative transports, or embedded runtimes, the library should still validate the sensitive field itself. That reduces reliance on deployment assumptions and prevents the same chain from reappearing in a less protected execution path.
👉 Read our full editorial: Gadget chains in Node.js turn low-severity bugs into critical risk