Skip to content
Heist/ feed
HighFix available

Axios: Prototype Pollution Gadget in axios toFormData Options

Type: advisorySource: OSV1 source record

## Summary 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. ## Impact The impact depends on which property is polluted and which axios serialization path the application uses. Polluted `dots`, `indexes`, or `metaTokens` can change field names and cause the receiving service to parse different data than the caller intended. Polluted `maxDepth` can cause nested form submissions to throw `ERR_FORM_DATA_DEPTH_EXCEEDED`, producing request-level or service-level denial of service for affected workflows. Polluted `visitor` can execute as the serializer visitor if an attacker can place a function on `Object.prototype`, but that condition generally implies a stronger same-process code-execution or malicious-dependency primitive and should be described carefully. ## Affected Functionality Affected: - `axios.toFormData()`. - `transformRequest` paths that serialize plain objects to `multipart/form-data`. - URL-encoded form serialization paths that rely on the same helper. - `formSerializer` option defaults when the releva

Announced Source revision 1
Original source ↗

GHSA-x97p-jq2g-jp4f

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:GHSA-x97p-jq2g-jp4f

axios

Source reference: /affected/0/package/name

Affected versions
Not stated in this record
Fixed versions
0.34.0

Source reference: /affected/0/ranges

Prerequisites
Not stated in this record

axios

Source reference: /affected/1/package/name

Affected versions
Not stated in this record
Fixed versions
1.20.0

Source reference: /affected/1/ranges

Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "ranges": [
      {
        "type": "SEMVER",
        "events": [
          {
            "introduced": "0.28.0"
          },
          {
            "fixed": "0.34.0"
          }
        ]
      }
    ],
    "package": {
      "name": "axios",
      "purl": "pkg:npm/axios",
      "ecosystem": "npm"
    },
    "database_specific": {
      "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-x97p-jq2g-jp4f/GHSA-x97p-jq2g-jp4f.json"
    }
  },
  {
    "ranges": [
      {
        "type": "SEMVER",
        "events": [
          {
            "introduced": "1.15.1"
          },
          {
            "fixed": "1.20.0"
          }
        ]
      }
    ],
    "package": {
      "name": "axios",
      "purl": "pkg:npm/axios",
      "ecosystem": "npm"
    },
    "database_specific": {
      "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-x97p-jq2g-jp4f/GHSA-x97p-jq2g-jp4f.json"
    }
  }
]
Related CVEs
CVE-2026-101909

Source reference: /aliases

Publisher severity

high

Source reference: /database_specific/severity

Linked CVE context

These ratings describe the referenced vulnerabilities and products. They are not a severity rating for every application using this dependency.

Event
#37693 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement