Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources, documents or advisories need attention: 274/275 feeds/APIs · 469/469 docs · 8/9 advisories · checked 01:18 UTC Customize Public modeDiscuss ChangeIntel on Discord

Axios: Denial of Service via Unhandled 'error' Event in HTTP/2 ClientHttp2Session Initialization

Collected exploitation and prediction evidence

Risk source coverage

CISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.

No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.

cve-program · CVE-2026-101901

Published

Axios is a promise-based HTTP client for the browser and Node.js. From 1.13.0 until 1.20.0, Http2Sessions does not install adequate error handling for a ClientHttp2Session during Axios HTTP/2 session initialization or reuse. A request uses httpVersion: 2 and the ClientHttp2Session emits an error during session initialization or reuse. The unhandled session error escapes normal Promise rejection handling. The uncaught error can terminate the Node.js process and cause denial of service. This issue is fixed in version 1.20.0.

Source published
28 Sep 2026 17:16:21 UTC
Source modified
1 Oct 2026 14:41:01 UTC
Observed here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: cve-program · CVE Program Terms of Use. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS 4.0 · 8.2 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

euvd · EUVD-2026-88370

Published

Axios is a promise-based HTTP client for the browser and Node.js. From 1.13.0 until 1.20.0, Http2Sessions does not install adequate error handling for a ClientHttp2Session during Axios HTTP/2 session initialization or reuse. A request uses httpVersion: 2 and the ClientHttp2Session emits an error during session initialization or reuse. The unhandled session error escapes normal Promise rejection handling. The uncaught error can terminate the Node.js process and cause denial of service. This issue is fixed in version 1.20.0.

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Sep 28, 2026, 5:16:21 PM

dateUpdated: Oct 1, 2026, 2:41:01 PM

5 related source bulletins · separate from aliases

RHSA-2026:74871: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-93450 · CVE-2026-101898 · CVE-2026-101900 · CVE-2026-101901 · CVE-2026-101902 · CVE-2026-101903 · CVE-2026-101904 · CVE-2026-101905 · CVE-2026-101906 · CVE-2026-101907 · CVE-2026-101908 · CVE-2026-101909

RHSA-2026:74869: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-93981 · CVE-2026-101898 · CVE-2026-101900 · CVE-2026-101901 · CVE-2026-101902 · CVE-2026-101903 · CVE-2026-101904 · CVE-2026-101905 · CVE-2026-101906 · CVE-2026-101907 · CVE-2026-101908 · CVE-2026-101909

RHSA-2026:74872: Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update

CVE-2026-101898 · CVE-2026-101900 · CVE-2026-101901 · CVE-2026-101902 · CVE-2026-101903 · CVE-2026-101904 · CVE-2026-101905 · CVE-2026-101906 · CVE-2026-101907 · CVE-2026-101908 · CVE-2026-101909

WID-SEC-W-2026-4056: Atlassian Produkte (Bamboo, Bitbucket, Confluence, Crucible, Fisheye und Jira): Mehrere Schwachstellen

CVE-2026-101898 · CVE-2026-101901 · CVE-2026-101903 · CVE-2026-101905 · CVE-2026-101906 · CVE-2026-101907 · CVE-2026-101909 · CVE-2026-12185 · CVE-2026-12802 · CVE-2026-12860 · CVE-2026-13006 · CVE-2026-13676 · CVE-2026-14682 · CVE-2026-18036 · CVE-2026-19534 · CVE-2026-19693 · CVE-2026-41842 · CVE-2026-41845 · CVE-2026-41850 · CVE-2026-49434 · CVE-2026-50750 · CVE-2026-53404 · CVE-2026-54399 · CVE-2026-54428 · CVE-2026-54512 · CVE-2026-54513 · CVE-2026-55153 · CVE-2026-55831 · CVE-2026-55833 · CVE-2026-56624 · CVE-2026-56745 · CVE-2026-58061 · CVE-2026-58062 · CVE-2026-59641 · CVE-2026-59645 · CVE-2026-59651 · CVE-2026-59903 · CVE-2026-62243 · CVE-2026-65182 · CVE-2026-65183 · CVE-2026-65637 · CVE-2026-65927 · CVE-2026-66422 · CVE-2026-67213 · CVE-2026-67214 · CVE-2026-68494 · CVE-2026-68495 · CVE-2026-68497 · CVE-2026-68498 · CVE-2026-68525 · CVE-2026-68569 · CVE-2026-68763 · CVE-2026-71888 · CVE-2026-71889 · CVE-2026-71891 · CVE-2026-73086 · CVE-2026-73507 · CVE-2026-73508 · CVE-2026-73634 · CVE-2026-73635 · CVE-2026-73646 · CVE-2026-75140 · CVE-2026-75595 · CVE-2026-75596 · CVE-2026-75975 · CVE-2026-76172 · CVE-2026-77185 · CVE-2026-84292 · CVE-2026-84375 · CVE-2026-93488 · CVE-2026-93491 · CVE-2026-93558 · CVE-2026-93690 · CVE-2026-93748 · CVE-2026-93994

WID-SEC-W-2026-4410: IBM App Connect Enterprise: Mehrere Schwachstellen

CVE-2026-100699 · CVE-2026-100700 · CVE-2026-100701 · CVE-2026-100702 · CVE-2026-101898 · CVE-2026-101900 · CVE-2026-101901 · CVE-2026-101902 · CVE-2026-101903 · CVE-2026-101904 · CVE-2026-101905 · CVE-2026-101906 · CVE-2026-101907 · CVE-2026-101908 · CVE-2026-101909 · CVE-2026-101915 · CVE-2026-101916 · CVE-2026-104850 · CVE-2026-106444 · CVE-2026-106445 · CVE-2026-106446 · CVE-2026-110869 · CVE-2026-111767 · CVE-2026-15187 · CVE-2026-33937 · CVE-2026-83745 · CVE-2026-84003 · CVE-2026-86535 · CVE-2026-90776 · CVE-2026-91863 · CVE-2026-91864 · CVE-2026-91865 · CVE-2026-91866 · CVE-2026-91867 · CVE-2026-93687 · CVE-2026-93749 · CVE-2026-94645 · CVE-2026-94646 · CVE-2026-96294

Source published
Sep 28, 2026, 5:16:21 PM (timezone not stated)
Source modified
Oct 1, 2026, 2:41:01 PM (timezone not stated)
Observed here
11 Nov 2026 05:28:11 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: euvd · ENISA EUVD · source terms and attribution apply. Source text is retained; field grouping and change labels are provided by ChangeIntel.

EUVD CVSS 4.0 · 8.2 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

nvd · CVE-2026-101901

Published

Axios is a promise-based HTTP client for the browser and Node.js. From 1.13.0 until 1.20.0, Http2Sessions does not install adequate error handling for a ClientHttp2Session during Axios HTTP/2 session initialization or reuse. A request uses httpVersion: 2 and the ClientHttp2Session emits an error during session initialization or reuse. The unhandled session error escapes normal Promise rejection handling. The uncaught error can terminate the Node.js process and cause denial of service. This issue is fixed in version 1.20.0.

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Awaiting Analysis

Weakness classifications: CWE-400

Original publisher date fields

published: 2026-09-28T18:17:18.233

lastModified: 2026-10-01T15:17:24.077

Source published
28 Sep 2026 18:17:18 UTC
Source modified
1 Oct 2026 15:17:24 UTC
Observed here
25 Oct 2026 04:17:26 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: nvd · NIST NVD usage terms; underlying source attribution retained. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS 4.0 · [email protected] · Secondary · 8.2 CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

osv · GHSA-542g-h47m-68v8

Published

## Summary Axios versions with Node.js HTTP/2 support can terminate the caller’s process when a ClientHttp2Session emits an error event that is not handled by axios. This affects applications that use the Node HTTP adapter with httpVersion: 2. A malicious, unavailable, or non-HTTP/2 endpoint can cause an uncaught exception instead of a normal rejected axios request. ## Impact The impact is denial of service. In affected applications, an attacker who can influence the request destination, or operate the destination server, may be able to crash the Node.js process. This does not affect default HTTP/1.1 usage, browser XHR/fetch adapters, or applications that do not enable axios HTTP/2 support. ## Affected Functionality Affected path: - Node.js HTTP adapter - httpVersion: 2 - HTTP/2 session creation/reuse through Http2Sessions - Network/session failures emitted as ClientHttp2Session error events Caller-controlled http2Options can make the issue easier to trigger, but passing arbitrary attacker input into axios config is caller-controlled behavior and should not be the primary advisory framing. ## Technical Details Http2Sessions.getSession() creates a session with http2.connect(authority, options) but only registers a close handler. It does not register an error handler on the returned ClientHttp2Session. When the session emits error, Node treats it as an unhandled EventEmitter error and throws. This can bypass the normal axios Promise rejection path and terminate the process. ## Proof of Concept of Attack ```js import axios from './index.js'; await axios.get('http://127.0.0.1:1/', { httpVersion: 2, timeout: 1000 }); ``` Expected vulnerable behavior: the process exits with an uncaught ECONNREFUSED session error instead of only rejecting the axios request. ## Workarounds Disable axios HTTP/2 for untrusted or user-influenced destinations and use the default HTTP/1.1 adapter until a fixed release is available. Also avoid passing attacker-controlled values into http2Options; axios config is trusted application input. <details> <summary><h3>Original report</h3></summary> Hi, i'm RelunSec a security researcher working with **InsiteTech.jp** i want let you known, i finded a DoS in axios, to reproduce that, that is the example of a server ```js const http = require('http'); // Import the local axios version to ensure the patch is active const axios = require('../../lib/axios.js').default; const url = require('url'); // A public HTTP/2 server to make internal requests to. // This simulates an external service your application might interact with over HTTP/2. const TARGET_URL = 'https://nghttp2.org/'; const PORT = 3000; const server = http.createServer(async (req, res) => { const parsedUrl = url.parse(req.url, true); const http2optionId = parsedUrl.query.http2optionId; if (!http2optionId) { console.warn(`[SERVER] Rejected request: Missing http2optionId parameter`); res.writeHead(400, { 'Content-Type': 'text/plain' }); res.end('Error: Missing http2optionId query parameter. Usage: ?http2optionId=value\n'); return; } console.log(`[SERVER] Received request with http2optionId: ${http2optionId}`); // Create an Axios instance configured for HTTP/2 // The 'id' in http2Options makes each session configuration unique. const axiosInstance = axios.create({ baseURL: TARGET_URL, httpVersion: 2, http2Options: { // rejectUnauthorized: false, // Uncomment if targeting a local HTTP/2 server with self-signed cert id: http2optionId, // This is the attacker-controlled unique part }, // Adding a short timeout to prevent attacker from waiting too long if target is slow timeout: 5000 }); try { const response = await axiosInstance.get('/'); res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end(`Internal HTTP/2 request successful for ID: ${http2optionId}\nStatus: ${response.status}`); } catch (error) { // Check for the specific error indicating session limit reached if (error.isAxiosError && error.code === axios.AxiosError.ERR_BAD_OPTION_VALUE) { console.error(`[SERVER] Internal HTTP/2 request failed for ID: ${http2optionId}: ${error.message}`); res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end(`Internal HTTP/2 request failed for ID: ${http2optionId}: ${error.message}`); } else { console.error(`[SERVER] Internal HTTP/2 request failed for ID: ${http2optionId}:`, error.message); res.writeHead(500, { 'Content-Type': 'text/plain' }); res.end(`Internal HTTP/2 request failed for ID: ${http2optionId}: Generic error - ${error.message}`); } } }); server.listen(PORT, () => { console.log(`PoC Server listening on http://localhost:${PORT}`); console.log(`Targeting internal HTTP/2 requests to: ${TARGET_URL}`); console.log(`Send requests to http://localhost:${PORT}?http2optionId=...`); console.log(`Expected behavior with current patch: After ~100 unique http2optionIds, subsequent requests will receive ERR_BAD_OPTION_VALUE.`); }); ``` i tested all that in latest git version, after starting the server.cjs, to trigger that you just need do ```rust relunsec@relunsec:~/software/axios-1/poc/poc$ curl http://127.0.0.1:3000/?http2optionId=hi curl: (52) Empty reply from server ``` that is extremly simple to trigger it confirms a DoS in the HTTP/2 session cache, that needs be patched, the impact is will lead the server crashes and shutdown by an attacker, the server is written properly and no flaws in it and try catch blocks and errors handled however because that is an axios internal error will crash </details> ---

Source published
30 Sep 2026 15:01:07 UTC
Source modified
30 Sep 2026 15:15:04 UTC
Observed here
24 Oct 2026 13:17:17 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · GitHub Advisory Database · CC-BY-4.0. Source text is retained; field grouping and change labels are provided by ChangeIntel.

CVSS_V4 · CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Publisher rating · HIGH

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 12 Nov 01:18 UTC · 274 of 275 readable · 272 fully read · documentation 469/469 current