Skip to content

Comments

chore: update dependency axios to v1.13.5 [security]#1583

Merged
renovate-sh-app[bot] merged 1 commit intomainfrom
renovate/npm-axios-vulnerability
Feb 11, 2026
Merged

chore: update dependency axios to v1.13.5 [security]#1583
renovate-sh-app[bot] merged 1 commit intomainfrom
renovate/npm-axios-vulnerability

Conversation

@renovate-sh-app
Copy link
Contributor

@renovate-sh-app renovate-sh-app bot commented Feb 10, 2026

This PR contains the following updates:

Package Change Age Confidence
axios (source) 1.13.21.13.5 age confidence

Axios is Vulnerable to Denial of Service via proto Key in mergeConfig

CVE-2026-25639 / GHSA-43fc-jf86-j433

More information

Details

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.

Severity

  • CVSS Score: Unknown
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

axios/axios (axios)

v1.13.5

Compare Source

Release 1.13.5

Highlights
  • Security: Fixed a potential Denial of Service issue involving the __proto__ key in mergeConfig. (PR #​7369)
  • Bug fix: Resolved an issue where AxiosError could be missing the status field on and after v1.13.3. (PR #​7368)
Changes
Security
  • Fix Denial of Service via __proto__ key in mergeConfig. (PR #​7369)
Fixes
  • Fix/5657. (PR #​7313)
  • Ensure status is present in AxiosError on and after v1.13.3. (PR #​7368)
Features / Improvements
  • Add input validation to isAbsoluteURL. (PR #​7326)
  • Refactor: bump minor package versions. (PR #​7356)
Documentation
  • Clarify object-check comment. (PR #​7323)
  • Fix deprecated Buffer constructor usage and README formatting. (PR #​7371)
CI / Maintenance
  • Chore: fix issues with YAML. (PR #​7355)
  • CI: update workflow YAMLs. (PR #​7372)
  • CI: fix run condition. (PR #​7373)
  • Dev deps: bump karma-sourcemap-loader from 0.3.8 to 0.4.0. (PR #​7360)
  • Chore(release): prepare release 1.13.5. (PR #​7379)
New Contributors

Full Changelog: axios/axios@v1.13.4...v1.13.5

v1.13.4

Compare Source

Overview

The release addresses issues discovered in v1.13.3 and includes significant CI/CD improvements.

Full Changelog: v1.13.3...v1.13.4

What's New in v1.13.4
Bug Fixes
  • fix: issues with version 1.13.3 (#​7352) (ee90dfc)
    • Fixed issues discovered in v1.13.3 release
    • Cleaned up interceptor test files
    • Improved workflow configurations
Infrastructure & CI/CD
  • refactor: ci and build (#​7340) (8ff6c19)

    • Major refactoring of CI/CD workflows
    • Consolidated workflow files for better maintainability
    • Added mise configuration for the development environment
    • Improved sponsor block update automation
    • Enhanced issue and PR templates
    • Added automatic release notes generation
    • Implemented workflow cancellation for concurrent runs
  • chore: codegen and some updates to workflows (76cf77b)

    • Code generation improvements
    • Workflow optimisations
Migration Notes
Breaking Changes

None in this release.

Deprecations

None in this release.

Contributors

Thank you to all contributors who made this release possible! Special thanks to:

v1.13.3

Compare Source

Bug Fixes
  • http2: Use port 443 for HTTPS connections by default. (#​7256) (d7e6065)
  • interceptor: handle the error in the same interceptor (#​6269) (5945e40)
  • main field in package.json should correspond to cjs artifacts (#​5756) (7373fbf)
  • package.json: add 'bun' package.json 'exports' condition. Load the Node.js build in Bun instead of the browser build (#​5754) (b89217e)
  • silentJSONParsing=false should throw on invalid JSON (#​7253) (#​7257) (7d19335)
  • turn AxiosError into a native error (#​5394) (#​5558) (1c6a86d)
  • types: add handlers to AxiosInterceptorManager interface (#​5551) (8d1271b)
  • types: restore AxiosError.cause type from unknown to Error (#​7327) (d8233d9)
  • unclear error message is thrown when specifying an empty proxy authorization (#​6314) (6ef867e)
Features
Reverts
Contributors to this release

Configuration

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

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, 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

Need help?

You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.

@renovate-sh-app renovate-sh-app bot requested review from a team as code owners February 10, 2026 08:06
@renovate-sh-app renovate-sh-app bot requested review from g3john and removed request for a team February 10, 2026 08:06
@renovate-sh-app renovate-sh-app bot enabled auto-merge (squash) February 10, 2026 08:06
@github-actions github-actions bot added the chore A miscellaneous change added to the application. label Feb 10, 2026
@github-actions
Copy link

github-actions bot commented Feb 10, 2026

Script size changes

Name +/- Main This PR Outcome
[411.js] = 2,178.85 kB 2,178.85 kB
[854.js] = 801.09 kB 801.09 kB
[datasource/module.js] = 25.18 kB 25.18 kB
[692.js] = 20.64 kB 20.64 kB
[663.js] = 5.83 kB 5.83 kB
[module.js] = 4.54 kB 4.54 kB
[156.js] = 1.90 kB 1.90 kB

Totals

Name +/- Main This PR Outcome
[Scripts] = 3,038.02 kB 3,038.02 kB
[Non-script Assets] = 2,677.50 kB 2,677.50 kB
[All] = 5,715.52 kB 5,715.52 kB

Generated by 🚫 dangerJS against c27642c

@renovate-sh-app renovate-sh-app bot force-pushed the renovate/npm-axios-vulnerability branch 2 times, most recently from ba8f578 to 865367f Compare February 11, 2026 11:07
@github-actions
Copy link

github-actions bot commented Feb 11, 2026

Terraform Configuration Validation Passed

All generated terraform configurations are valid and compatible with the Grafana provider schema. 🎉

✅ Validation Results

  • JSON Syntax: Valid Terraform JSON configuration
  • HCL Syntax: Valid Terraform HCL configuration
  • Schema Compatibility: Compatible with Grafana provider

Validated Resources:

  • grafana_synthetic_monitoring_check (HTTP, DNS, TCP, Ping, MultiHTTP, Scripted, Traceroute)
  • grafana_synthetic_monitoring_probe (Public, Private, Online, Offline)
  • grafana_synthetic_monitoring_check_alerts (Alert configurations)

The terraform export functionality will work correctly with these changes.

| datasource | package | from   | to     |
| ---------- | ------- | ------ | ------ |
| npm        | axios   | 1.13.2 | 1.13.5 |


Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
@renovate-sh-app renovate-sh-app bot force-pushed the renovate/npm-axios-vulnerability branch from 865367f to c27642c Compare February 11, 2026 20:09
@renovate-sh-app renovate-sh-app bot merged commit 021ccfa into main Feb 11, 2026
36 checks passed
@renovate-sh-app renovate-sh-app bot deleted the renovate/npm-axios-vulnerability branch February 11, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge-security-update chore A miscellaneous change added to the application. severity:HIGH

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant