CVE-2026-101909: Axios: Prototype Pollution Gadget in axios toFormData Options
Axios form serialization reads visitor, maxDepth, dots, indexes, metaTokens, and Blob from an internal options object without own-property guards. When Object.prototype has been polluted elsewhere in the same process, those inherited values can change how axios serializes multipart and URL-encoded request bodies.
Axios does not create the prototype pollution source. This is a read-side gadget: axios turns an existing same-process pollution condition into altered request serialization or request failures.
axios v1.18.1 contains a read-side prototype pollution gadget in its form data serialization logic. Six option properties (visitor, maxDepth, dots, indexes, metaTokens, Blob) are read from a plain JavaScript object that inherits from Object.prototype without hasOwnProperty guards. When Object.prototype has been polluted elsewhere in the process a common consequence of compromised transitive npm dependencies, these polluted values silently control axios’ form serialization behavior.
The highest-impact gadget is visitor: a polluted function on Object.prototype.visitor is invoked for every key-value pair during multipart and URL-encoded form serialization, receiving the value, key, path, and internal helper functions as arguments.
References
- github.com/advisories/GHSA-x97p-jq2g-jp4f
- github.com/axios/axios/commit/d19040bda7a8be2f82c3c6e1a5bc03917daee39a
- github.com/axios/axios/commit/d29be181f85f6fe93397a07b1f69606d9622637b
- github.com/axios/axios/pull/11141
- github.com/axios/axios/releases/tag/v0.34.0
- github.com/axios/axios/releases/tag/v1.20.0
- github.com/axios/axios/security/advisories/GHSA-x97p-jq2g-jp4f
- nvd.nist.gov/vuln/detail/CVE-2026-101909
Code Behaviors & Features
Detect and mitigate CVE-2026-101909 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →