Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
📦
📦 npm
Not in CISA KEV
HIGH severity

GHSA-777c-7fjr-54vf — axios

HIGHFix: axios/axios#10795

GHSA-777c-7fjr-54vf is a high-severity (CVSS 7.5) CWE-770 vulnerability in axios. A fix is available for axios — see the affected versions and patch details below.

Allocation of Resources Without Limits or Throttling in Axios

Also known asCVE-2026-44488
Published
Jun 4, 2026
Updated
Sep 10, 2026
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Sep 27, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

Proof-of-concept exploit code exists

  • CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.

Exploitation and automatability from CISA’s SSVC triage for GHSA-777c-7fjr-54vf.

EPSS Exploitation Probability

via FIRST.org ↗
0.9%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs59th percentile — riskier than 59% of all scored CVEsHighest risk

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

GHSA-777c-7fjr-54vf by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.

Where this sits among everything scored

Of 379,842 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.

Real-World Exposure

1 pkg affected

How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.

180Kother npm packages depend on this — each one inherits the vulnerability until it's patched upstream
axiosnpm
133.4Mdownloads / week

Description

Summary

Axios versions 1.7.0 through 1.15.x did not enforce configured request and response size limits when requests were sent with the fetch adapter. Applications that selected adapter: 'fetch', or ran in environments where axios resolved to the fetch adapter, could receive or send bodies larger than maxContentLength or maxBodyLength despite those limits being explicitly configured.

This can cause resource exhaustion in server-side usage when a malicious or compromised server returns an oversized response, when an attacker can supply a large data: URL, or when an application forwards attacker-controlled request bodies through axios while relying on maxBodyLength as a boundary.

Impact

The impact is availability-only. Affected applications may process, buffer, or transmit data beyond the configured limit, potentially exhausting memory, CPU, or network resources.

This does not affect axios’s default unlimited behaviour by itself: maxContentLength and maxBodyLength default to -1. The vulnerability exists when an application has configured finite limits and expects axios to enforce them.

Server-side runtimes are the primary concern. Browser impact is generally constrained by the browser process and browser fetch behavior, and should not be described as server process exhaustion.

Affected Functionality

Affected functionality includes requests using the built-in fetch adapter with finite maxContentLength or maxBodyLength values.

Relevant configurations include:

  • adapter: 'fetch'
  • adapter: ['fetch', ...] when fetch is selected
  • environments where neither xhr nor http is available and axios falls back to fetch
  • custom fetch environments configured through env.fetch

Unaffected functionality includes:

  • Node.js default http adapter enforcement
  • versions before the fetch adapter was introduced
  • configurations that do not rely on finite axios size limits

Technical Details

In vulnerable versions, lib/adapters/fetch.js destructured request config without maxContentLength or maxBodyLength. The adapter dispatched fetch() and then materialized the response through text(), arrayBuffer(), blob(), or related resolvers without checking the configured response limit.

The fix in e5540dc added:

  • maxContentLength and maxBodyLength reads in lib/adapters/fetch.js
  • upfront data: URL decoded-size checks
  • outbound body-size checks before dispatch
  • Content-Length response pre-checks
  • streaming response enforcement
  • fallback checks for environments without ReadableStream
  • regression tests in tests/unit/adapters/fetch.test.js

Proof of Concept of Attack

import http from 'node:http';
import axios from 'axios';

const server = http.createServer((req, res) => {
  let received = 0;

  req.on('data', chunk => {
    received += chunk.length;
  });

  req.on('end', () => {
    res.end(JSON.stringify({ received }));
  });
});

await new Promise(resolve => server.listen(0, resolve));
const url = `http://127.0.0.1:${server.address().port}/`;

await axios.post(url, 'A'.repeat(2 * 1024 * 1024), {
  adapter: 'fetch',
  maxBodyLength: 1024
});

// Vulnerable versions succeed and the server receives 2097152 bytes.
// Fixed versions reject with ERR_BAD_REQUEST.

server.close();

Workarounds

Use the Node.js http adapter for server-side requests where finite size limits are security-relevant.

Validate or cap attacker-controlled request bodies before passing them to axios.

Reject or strictly allowlist attacker-controlled URL schemes, especially data: URLs, before calling axios.

<details> <summary>Original Report</summary>

Summary

When Axios is used with adapter: 'fetch', configured body/response size limits are not enforced. This allows oversized uploads/downloads (including data: URLs) despite explicit limits, which can lead to memory/resource exhaustion in server-side usage.

Details

maxBodyLength and maxContentLength are not applied in the fetch adapter flow:

  • lib/adapters/fetch.js (146-160): config destructuring does not include these controls.
  • lib/adapters/fetch.js (220-234): request is dispatched with fetch() without request-size enforcement.
  • lib/adapters/fetch.js (267-283): response is materialized via text(), arrayBuffer(), blob(), etc. without response-size checks. By contrast, the HTTP adapter enforces both limits.

PoC

Environment:

  • Axios main at commit f7a4ee2
  • Node v24.2.0

Steps:

  1. Start an HTTP server that counts received bytes and echoes {received}.
  2. Send 2 MiB with:
    • adapter: 'fetch'
    • maxBodyLength: 1024
  3. Request a 4 KiB data: URL with:
    • adapter: 'fetch'
    • maxContentLength: 16

Expected secure behavior: both requests rejected. Observed:

  • Upload: success, server received 2097152
  • data: response: success, length 4096

Impact

Type: DoS / resource exhaustion due to limit bypass. Impacted: applications using Axios fetch adapter as a server-side security control boundary for untrusted request/response sizes.

</details>

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
📦npmaxios≥ 1.7.0&&< 1.16.01.16.0npm install axios@1.16.0

Affected Products

1 product · 1 configurations
Application
axiosaxios
≥ 1.7.0 && < 1.16.0
range

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for axios, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update axios to 1.16.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-777c-7fjr-54vf is resolved across your whole dependency graph.

  3. Workarounds

    Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatImportant

Important: A denial of service flaw was found in Axios, a JavaScript HTTP client library. This issue arises when applications utilize the `fetch` adapter, as configured request and response size limits are not properly enforced. A remote attacker could exploit this by sending or receiving excessively large data…

Workaround published by Red Hat
Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.
Source: Red Hat security advisory for GHSA-777c-7fjr-54vf (CC BY 4.0)
ProductFixed inAdvisory
Red Hat AMQ Broker 7.13.6axiosRHSA-2026:66545
Red Hat AMQ Broker 7.14.1axiosRHSA-2026:66488
Red Hat Ansible Automation Platform 2.5 for RHEL 8automation-gateway-0:2.5.20260715-1.el8apRHSA-2026:42078
Red Hat Ansible Automation Platform 2.6 for RHEL 9automation-platform-ui-0:2.6.10-1.el9apRHSA-2026:34160
Red Hat Data Grid 8.6.2axiosRHSA-2026:41951
multicluster engine for Kubernetes 2.10multicluster-engine/console-mce-rhel9:1784312384RHSA-2026:46885
multicluster engine for Kubernetes 2.10multicluster-engine/console-mce-rhel9:1784312384RHSA-2026:47388
multicluster engine for Kubernetes 2.6multicluster-engine/console-mce-rhel9:1783351002RHSA-2026:41055

Frequently Asked Questions

## Summary Axios versions `1.7.0` through `1.15.x` did not enforce configured request and response size limits when requests were sent with the `fetch` adapter. Applications that selected `adapter: 'fetch'`, or ran in environments where axios resolved to the fetch adapter, could receive or send bodies larger than `maxContentLength` or `maxBodyLength` despite those limits being explicitly configured. This can cause resource exhaustion in server-side usage when a malicious or compromised server returns an oversized response, when an attacker can supply a large `data:` URL, or when an applicati
O3 Security · Impact-Aware SCA

Is GHSA-777c-7fjr-54vf in your dependencies?

Find it across npm, including transitive dependencies.