CVE-2026-25639: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-25639 is a Denial of Service (DoS) vulnerability in the Axios HTTP client library for Node.js, caused by improper handling of __proto__ as an own property in the mergeConfig function. When a configuration object containing __proto__ (created via JSON.parse()) is passed to any Axios HTTP method, the library crashes with a TypeError, causing complete service unavailability. The vulnerability affects Axios versions prior to 0.30.3 (0.x branch) and prior to 1.13.5 (1.x branch). It was disclosed on February 8, 2026, and carries a CVSS v3.1 base score of 7.5 (High) (GitHub Advisory).

Technical details

The root cause is classified as CWE-754 (Improper Check for Unusual or Exceptional Conditions). The flaw exists in lib/core/mergeConfig.js at lines 98–101, where Object.keys({ ...config1, ...config2 }) is iterated without filtering dangerous prototype-related keys. When __proto__ appears as an own enumerable property (as produced by JSON.parse('{ "__proto__": {...} }')), the lookup mergeMap['__proto__'] traverses the prototype chain and returns Object.prototype — a truthy non-function object. The subsequent call Object.prototype(...) throws TypeError: merge is not a function, crashing the Node.js process. This code path is triggered by all Axios HTTP method shortcuts (get, post, etc.), Axios._request(), and Axios.getUri(). Importantly, this is not prototype pollution — the crash occurs before any property assignment (GitHub Advisory, Fix Commit).

Impact

Successful exploitation results in a complete crash of any Node.js application that accepts user-controlled JSON, parses it with JSON.parse(), and passes the result to Axios configuration methods. The impact is limited to availability — there is no confidentiality or integrity impact. Applications relying on Axios for outbound HTTP requests (e.g., API gateways, backend services, microservices) would become entirely unresponsive, potentially causing cascading failures in dependent systems. The vulnerability has a broad downstream footprint, affecting numerous IBM enterprise products (including IBM Maximo Application Suite, IBM API Connect, IBM Cloud Pak for Business Automation, IBM watsonx Orchestrate, and others), Atlassian products, Splunk User Behavior Analytics, Red Hat packages, and HPE products (GitHub Advisory, IBM Advisory).

Exploitability

A public proof-of-concept (PoC) is available in the official GitHub security advisory, requiring only a few lines of JavaScript to reproduce the crash (GitHub Advisory). The vulnerability requires no authentication, no privileges, and no user interaction — any network-accessible endpoint that passes user-supplied JSON to Axios is exploitable. The EPSS score is approximately 0.046% (15th percentile), indicating low current exploitation probability. There is no evidence of active in-the-wild exploitation or threat actor attribution at this time, and the vulnerability is not listed in the CISA KEV catalog (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify Node.js applications that accept user-controlled JSON input and use Axios for HTTP requests. Look for API endpoints that accept JSON bodies and pass them (or parts of them) to Axios configuration parameters such as headers, params, or the config object directly.
  2. Craft malicious payload: Construct a JSON payload containing __proto__ as a top-level key: {"__proto__": {"x": 1}}. This creates an object with __proto__ as an own enumerable property when parsed with JSON.parse().
  3. Deliver payload: Submit the malicious JSON to the target endpoint via an HTTP request (e.g., POST /api/endpoint with Content-Type: application/json and body {"__proto__": {"x": 1}}).
  4. Trigger crash: If the application passes the parsed JSON object (or a derivative) to any Axios method as a config parameter — e.g., axios.get(url, userConfig) — the mergeConfig function will encounter __proto__ during key iteration, attempt to call Object.prototype as a function, and throw TypeError: merge is not a function.
  5. Achieve DoS: The unhandled TypeError crashes the Node.js process or request handler, making the service unavailable. Repeated requests sustain the denial of service (GitHub Advisory).

Indicators of compromise

  • Logs: Node.js application logs showing TypeError: merge is not a function with stack traces referencing computeConfigValue (lib/core/mergeConfig.js:100), Object.forEach (lib/utils.js:280), and mergeConfig (lib/core/mergeConfig.js:98).
  • Logs: Repeated application crashes or process restarts (e.g., PM2, systemd, or container orchestrator restart events) correlated with specific inbound HTTP requests.
  • Network: Inbound HTTP requests containing JSON bodies with __proto__ as a top-level key (detectable via WAF or API gateway request logging).
  • Application Behavior: Sudden service unavailability or elevated error rates (HTTP 500 or connection refused) on endpoints that accept JSON input and use Axios internally.

Mitigation and workarounds

Upgrade Axios to version 1.13.5 (for the 1.x branch) or 0.30.3 (for the 0.x branch), which add explicit filtering of __proto__, constructor, and prototype keys in mergeConfig and utils.merge (GitHub Advisory, Fix Commit). As a workaround for applications that cannot immediately patch, validate and sanitize user-supplied JSON before passing it to Axios — specifically, reject or strip any object containing __proto__, constructor, or prototype as keys. Downstream product users should apply vendor-specific patches: IBM has released fixes across numerous affected products (Maximo, API Connect, Cloud Pak, watsonx, etc.), Splunk released SVD-2026-0515, Atlassian issued bulletins in March, April, and May 2026, and Red Hat has published multiple errata (e.g., RHSA-2026:2694, RHSA-2026:3087, RHSA-2026:3109).

Community reactions

The vulnerability received moderate coverage from security news outlets shortly after disclosure, with articles from SecurityOnline.info, CyberSecurityNews, IT Security News, and Security Boulevard highlighting the DoS risk to Node.js servers (SecurityOnline, CyberSecurityNews). The Hacker News included it in a weekly recap, and Cyble featured it in their weekly vulnerability report. Striga.ai published a technical deep-dive titled "Crashing Axios with __proto__" (Striga Research). Community reaction on GitHub was active, with numerous dependent projects (including Azure LogicAppsUX, Kolibri, and others) quickly merging Dependabot PRs to upgrade Axios. The axios maintainer (jasonsaayman) responded promptly, merging the fix on February 4, 2026, and the 0.x backport was contributed by community member FeBe95 on February 18, 2026.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

node-axios

Affected

sid

node-axios: 1.14.0+dfsg-1

Fixed

trixie

node-axios

Affected

Ubuntu

Unknown

devel

node-axios

Unknown

focal (esm-apps)

node-axios

Unknown

jammy

node-axios

Unknown

jammy (esm-apps)

node-axios

Unknown

noble

node-axios

Unknown

noble (esm-apps)

node-axios

Unknown

resolute

node-axios

Unknown

resolute (esm-apps)

node-axios

Unknown

RHEL / CentOS

Fixed

OpenShift

el9:openshift4/ose-monitoring-plugin-rhel9-0:v4.19.0

Fixed

RHEL 8

Not Affected

RHEL 9

Not Affected

Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-966w-4vpf-p7hcHIGH7.1
  • JavaScript logoJavaScript
  • @aloma.io/aloma
NoYesOct 25, 2026
GHSA-mrwp-f3q8-3g9pMEDIUM5.9
  • JavaScript logoJavaScript
  • follow-redirects
NoYesOct 25, 2026
GHSA-hfm3-x63j-7fxpHIGHN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/migrate
NoYesOct 25, 2026
GHSA-6244-vvv9-76f5MEDIUMN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/plugin
NoYesOct 25, 2026
GHSA-q53q-qg98-p9jfHIGHN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management