Skip to content

Comments

chore(deps): update dependency axios to v0.30.3 [security]#247

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/npm-axios-vulnerability
Open

chore(deps): update dependency axios to v0.30.3 [security]#247
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/npm-axios-vulnerability

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Nov 11, 2023

This PR contains the following updates:

Package Change Age Confidence
axios (source) 0.27.20.30.3 age confidence

GitHub Vulnerability Alerts

CVE-2023-45857

An issue discovered in Axios 0.8.1 through 1.5.1 inadvertently reveals the confidential XSRF-TOKEN stored in cookies by including it in the HTTP header X-XSRF-TOKEN for every request made to any host allowing attackers to view sensitive information.

CVE-2026-25639

Denial of Service via proto Key in mergeConfig

Summary

The mergeConfig function in axios crashes with a TypeError when processing configuration objects containing __proto__ as an own property. An attacker can trigger this by providing a malicious configuration object created via JSON.parse(), causing complete denial of service.

Details

The vulnerability exists in lib/core/mergeConfig.js at lines 98-101:

utils.forEach(Object.keys({ ...config1, ...config2 }), function computeConfigValue(prop) {
  const merge = mergeMap[prop] || mergeDeepProperties;
  const configValue = merge(config1[prop], config2[prop], prop);
  (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
});

When prop is '__proto__':

  1. JSON.parse('{"__proto__": {...}}') creates an object with __proto__ as an own enumerable property
  2. Object.keys() includes '__proto__' in the iteration
  3. mergeMap['__proto__'] performs prototype chain lookup, returning Object.prototype (truthy object)
  4. The expression mergeMap[prop] || mergeDeepProperties evaluates to Object.prototype
  5. Object.prototype(...) throws TypeError: merge is not a function

The mergeConfig function is called by:

  • Axios._request() at lib/core/Axios.js:75
  • Axios.getUri() at lib/core/Axios.js:201
  • All HTTP method shortcuts (get, post, etc.) at lib/core/Axios.js:211,224

PoC

import axios from "axios";

const maliciousConfig = JSON.parse('{"__proto__": {"x": 1}}');
await axios.get("https://httpbin.org/get", maliciousConfig);

Reproduction steps:

  1. Clone axios repository or npm install axios
  2. Create file poc.mjs with the code above
  3. Run: node poc.mjs
  4. Observe the TypeError crash

Verified output (axios 1.13.4):

TypeError: merge is not a function
    at computeConfigValue (lib/core/mergeConfig.js:100:25)
    at Object.forEach (lib/utils.js:280:10)
    at mergeConfig (lib/core/mergeConfig.js:98:9)

Control tests performed:

Test Config Result
Normal config {"timeout": 5000} SUCCESS
Malicious config JSON.parse('{"__proto__": {"x": 1}}') CRASH
Nested object {"headers": {"X-Test": "value"}} SUCCESS

Attack scenario:
An application that accepts user input, parses it with JSON.parse(), and passes it to axios configuration will crash when receiving the payload {"__proto__": {"x": 1}}.

Impact

Denial of Service - Any application using axios that processes user-controlled JSON and passes it to axios configuration methods is vulnerable. The application will crash when processing the malicious payload.

Affected environments:

  • Node.js servers using axios for HTTP requests
  • Any backend that passes parsed JSON to axios configuration

This is NOT prototype pollution - the application crashes before any assignment occurs.


Release Notes

axios/axios (axios)

v0.30.3

Compare Source

v0.30.2

Compare Source

What's Changed

New Contributors

Full Changelog: axios/axios@v0.30.1...v0.30.2

v0.30.1

Compare Source

Release notes:

Bug Fixes
Contributors to this release

Full Changelog: axios/axios@v0.30.0...v0.30.1

v0.30.0

Compare Source

Release notes:

Bug Fixes
Contributors to this release

Full Changelog: axios/axios@v0.29.0...v0.30.0

v0.29.0

Compare Source

Release notes:

Bug Fixes
Contributors to this release

v0.28.1

Compare Source

Release notes:

Release notes:

Bug Fixes
  • fix(backport): custom params serializer support (#​6263)
  • fix(backport): uncaught ReferenceError req is not defined (#​6307)

v0.28.0

Compare Source

Release notes:

Bug Fixes
Backports from v1.x:
  • Allow null indexes on formSerializer and paramsSerializer v0.x (#​4961)
  • Fixing content-type header repeated #​4745
  • Fixed timeout error message for HTTP 4738
  • Added axios.formToJSON method (#​4735)
  • URL params serializer (#​4734)
  • Fixed toFormData Blob issue on node>v17 #​4728
  • Adding types for progress event callbacks #​4675
  • Fixed max body length defaults #​4731
  • Added data URL support for node.js (#​4725)
  • Added isCancel type assert (#​4293)
  • Added the ability for the url-encoded-form serializer to respect the formSerializer config (#​4721)
  • Add string[] to AxiosRequestHeaders type (#​4322)
  • Allow type definition for axios instance methods (#​4224)
  • Fixed AxiosError stack capturing; (#​4718)
  • Fixed AxiosError status code type; (#​4717)
  • Adding Canceler parameters config and request (#​4711)
  • fix(types): allow to specify partial default headers for instance creation (#​4185)
  • Added blob to the list of protocols supported by the browser (#​4678)
  • Fixing Z_BUF_ERROR when no content (#​4701)
  • Fixed race condition on immediate requests cancellation (#​4261)
  • Added a clear() function to the request and response interceptors object so a user can ensure that all interceptors have been removed from an Axios instance #​4248
  • Added generic AxiosAbortSignal TS interface to avoid importing AbortController polyfill (#​4229)
  • Fix TS definition for AxiosRequestTransformer (#​4201)
  • Use type alias instead of interface for AxiosPromise (#​4505)
  • Include request and config when creating a CanceledError instance (#​4659)
  • Added generic TS types for the exposed toFormData helper (#​4668)
  • Optimized the code that checks cancellation (#​4587)
  • Replaced webpack with rollup (#​4596)
  • Added stack trace to AxiosError (#​4624)
  • Updated AxiosError.config to be optional in the type definition (#​4665)
  • Removed incorrect argument for NetworkError constructor (#​4656)

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Nov 11, 2023
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from f7bc153 to b752d7a Compare November 28, 2023 10:50
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from b752d7a to f07950f Compare December 12, 2023 17:05
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from f07950f to ffc589d Compare January 4, 2024 22:35
@renovate renovate bot changed the title chore(deps): update dependency axios to v1 [security] chore(deps): update dependency axios to v1 [security] - autoclosed Feb 20, 2024
@renovate renovate bot closed this Feb 20, 2024
@renovate renovate bot deleted the renovate/npm-axios-vulnerability branch February 20, 2024 22:24
@renovate renovate bot changed the title chore(deps): update dependency axios to v1 [security] - autoclosed chore(deps): update dependency axios to v1 [security] Feb 22, 2024
@renovate renovate bot restored the renovate/npm-axios-vulnerability branch February 22, 2024 03:16
@renovate renovate bot reopened this Feb 22, 2024
@renovate renovate bot changed the title chore(deps): update dependency axios to v1 [security] chore(deps): update dependency axios to v0.28.0 [security] Feb 22, 2024
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from ffc589d to 0f650e0 Compare February 22, 2024 03:16
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] chore(deps): update dependency axios to v0.28.0 [security] - autoclosed Jul 30, 2024
@renovate renovate bot closed this Jul 30, 2024
@renovate renovate bot deleted the renovate/npm-axios-vulnerability branch July 30, 2024 01:48
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] - autoclosed chore(deps): update dependency axios to v0.28.0 [security] Jul 30, 2024
@renovate renovate bot reopened this Jul 30, 2024
@renovate renovate bot restored the renovate/npm-axios-vulnerability branch July 30, 2024 03:50
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 0f650e0 to b4bcf40 Compare July 30, 2024 03:51
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch 2 times, most recently from 6f065c2 to 1f53fc8 Compare September 10, 2024 10:33
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 1f53fc8 to 5d34483 Compare March 7, 2025 21:53
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] chore(deps): update dependency axios to v1 [security] Mar 7, 2025
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 5d34483 to 7f4613b Compare March 8, 2025 06:55
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 7f4613b to ffbeb77 Compare March 28, 2025 15:31
@renovate renovate bot changed the title chore(deps): update dependency axios to v1 [security] chore(deps): update dependency axios to v0.28.0 [security] Mar 28, 2025
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from ffbeb77 to 145da1f Compare August 10, 2025 14:30
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 145da1f to 2b20e6c Compare September 13, 2025 05:13
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] chore(deps): update dependency axios to v1 [security] Sep 13, 2025
@renovate renovate bot changed the title chore(deps): update dependency axios to v1 [security] chore(deps): update dependency axios to v0.28.0 [security] Sep 29, 2025
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch 2 times, most recently from d8a297b to bde0347 Compare September 30, 2025 01:51
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] chore(deps): update dependency axios to v0.30.2 [security] Sep 30, 2025
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from bde0347 to 69b1c0d Compare October 21, 2025 15:10
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 69b1c0d to 8552d25 Compare November 19, 2025 00:50
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 8552d25 to 8d2d42f Compare January 16, 2026 15:52
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.30.2 [security] chore(deps): update dependency axios to v0.28.0 [security] Jan 16, 2026
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 8d2d42f to 60cbb8a Compare February 10, 2026 01:27
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] chore(deps): update dependency axios to v1 [security] Feb 10, 2026
@renovate renovate bot changed the title chore(deps): update dependency axios to v1 [security] chore(deps): update dependency axios to v0.28.0 [security] Feb 18, 2026
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 60cbb8a to 3e107e7 Compare February 18, 2026 19:31
@renovate renovate bot force-pushed the renovate/npm-axios-vulnerability branch from 3e107e7 to 32ced1e Compare February 19, 2026 22:09
@renovate renovate bot changed the title chore(deps): update dependency axios to v0.28.0 [security] chore(deps): update dependency axios to v0.30.3 [security] Feb 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants