CVE-2026-1525: undici is vulnerable to Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')

Published Mar 12, 2026
·
Updated

Impact

Undici allows duplicate HTTP Content-Length headers when they are provided in an array with case-variant names (e.g., Content-Length and content-length). This produces malformed HTTP/1.1 requests with multiple conflicting Content-Length values on the wire.

Who is impacted: - Applications using undici.request(), undici.Client, or similar low-level APIs with headers passed as flat arrays - Applications that accept user-controlled header names without case-normalization

Potential consequences: - Denial of Service: Strict HTTP parsers (proxies, servers) will reject requests with duplicate Content-Length headers (400 Bad Request) - HTTP Request Smuggling: In deployments where an intermediary and backend interpret duplicate headers inconsistently (e.g., one uses the first value, the other uses the last), this can enable request smuggling attacks leading to ACL bypass, cache poisoning, or credential hijacking

Patches

Patched in the undici version v7.24.0 and v6.24.0. Users should upgrade to this version or later.

Workarounds

If upgrading is not immediately possible:

1. Validate header names: Ensure no duplicate Content-Length headers (case-insensitive) are present before passing headers to undici 2. Use object format: Pass headers as a plain object ({ 'content-length': '123' }) rather than an array, which naturally deduplicates by key 3. Sanitize user input: If headers originate from user input, normalize header names to lowercase and reject duplicates

Other sources

Undici allows duplicate HTTP Content-Length headers when they are provided in an array with case-variant names (e.g., Content-Length and content-length). This produces malformed HTTP/1.1 requests with multiple conflicting Content-Length values on the wire.

Who is impacted:

Applications using undici.request(), undici.Client, or similar low-level APIs with headers passed as flat arrays Applications that accept user-controlled header names without case-normalization

Potential consequences:

Denial of Service: Strict HTTP parsers (proxies, servers) will reject requests with duplicate Content-Length headers (400 Bad Request) HTTP Request Smuggling: In deployments where an intermediary and backend interpret duplicate headers inconsistently (e.g., one uses the first value, the other uses the last), this can enable request smuggling attacks leading to ACL bypass, cache poisoning, or credential hijacking

Red Hat

Affected Software

6 affected componentsFixes available
npm/undici
npm/undici>=7.0.0<7.24.0
7.24.0
npm/undici<6.24.0
6.24.0
Nodejs Undici Node.js<6.24.0
Nodejs Undici Node.js>=7.0.0<7.24.0
IBM watsonx.data intelligence<=5.2.0, 5.2.1, 5.3.0, 5.3.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/undici to a version that resolves this vulnerability.

    Fixed in 7.24.0
  2. Upgrade

    Upgrade npm/undici to a version that resolves this vulnerability.

    Fixed in 6.24.0
  3. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 7.24.0
  4. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 6.24.0
  5. Configuration

    If headers may come from user input or are built programmatically, pass headers as a plain object so keys deduplicate by name instead of passing them as flat arrays that can allow case-variant duplicate Content-Length headers.

    undici.request()/undici.Client (headers handling) headers format = Use a plain object (e.g., { 'content-length': '123' }) rather than a flat array
  6. Configuration

    Before calling undici low-level APIs, normalize header names to lowercase and ensure no duplicate Content-Length headers exist (case-insensitive).

    undici.request()/undici.Client (headers handling) Header normalization & duplicates = Normalize header names to lowercase and reject duplicates (case-insensitive) for Content-Length
  7. Compensating control

    If an intermediary/proxy/backend is in the path, ensure it rejects requests with duplicate Content-Length headers (e.g., strict parsing that returns 400 Bad Request) to reduce HTTP request smuggling risk from inconsistent duplicate-header interpretation.

Event History

Mar 12, 2026
CVE Published
via MITRE·07:56 PM
Data Sourced
via MITRE·07:56 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:16 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·08:16 PM
Affected Software
Data Sourced
via Red Hat·09:01 PM
DescriptionSeverityAffected Software
Mar 13, 2026
Advisory Published
via GitHub·08:07 PM
Data Sourced
via GitHub·08:07 PM
DescriptionSeverityWeaknessAffected Software
Apr 27, 2026
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-1525?

The severity of CVE-2026-1525 is classified as medium due to the potential for HTTP request smuggling attacks.

2

How do I fix CVE-2026-1525?

To fix CVE-2026-1525, update the undici library to the latest version that addresses this vulnerability.

3

What is the impact of CVE-2026-1525 on web applications?

CVE-2026-1525 can allow an attacker to smuggle HTTP requests, which may lead to unauthorized actions or data exposure.

4

Which versions of undici are affected by CVE-2026-1525?

All versions of undici prior to the patched version that resolves CVE-2026-1525 are affected.

5

Is authentication required to exploit CVE-2026-1525?

No, CVE-2026-1525 can be exploited without authentication, making it a critical security concern.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203