CVE-2026-23527: h3js h3 HTTP request smuggling in readRawBody

CVE-2026-23527 · Severity: high · CVSS 8.9 · Published 2026-01-15

A vulnerability in the h3 web framework could allow attackers to bypass security filters or interfere with other users' web traffic. By sending specially crafted web requests with unusual capitalization, an attacker can trick the server into misinterpreting where one request ends and the next begins. This can lead to unauthorized access to data or the ability to hijack sessions when the application is hosted behind certain types of load balancers.

Technologies: h3 (npm), Uber H3-Js. Vendors: npm, Uber.

Quick answers

Is CVE-2026-23527 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-23527 being exploited in the wild.
How severe is CVE-2026-23527?
High severity, with a CVSS score of 8.9, published 15 January 2026.
Which products and versions are affected?
h3 (npm) <= 1.15.4, SEMVER:introduced=0,fixed=1.15.5; Uber H3-Js <= 1.15.4.
Is there a fix for CVE-2026-23527?
Yes. h3 (npm): upgrade to 1.15.5 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-23527 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-23527?
Check whether you run h3 (npm) or Uber H3-Js at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • h3 (npm): upgrade to 1.15.5 or later
    npm install h3@1.15.5

Technical details

The h3 library (v1.15.4 and earlier) fails to perform case-insensitive validation of the 'Transfer-Encoding' HTTP header in its 'readRawBody' function. While the HTTP specification requires this header to be case-insensitive, h3 specifically looks for the lowercase string 'chunked'. If an attacker provides a mixed-case header like 'Transfer-Encoding: ChuNked', h3 fails to recognize the chunked body and assumes a content length of zero. This leads to a TE.TE desynchronization vulnerability when h3 is deployed behind intermediaries (like AWS NLB or certain Node.js proxies) that do not normalize header casing, allowing an attacker to smuggle a second request within the body of the first. This can be used to bypass WAFs or poison the socket for subsequent users. The issue is fixed in version 1.15.5 by normalizing header values to lowercase before validation.

Affected products

  • h3js h3 <= 1.15.4

Identifiers

  • CVE-2026-23527
  • GHSA-mp2g-9vg9-f4cg

Timeline

  • 2026-01-15: disclosed
  • 2026-01-15: advisory
  • 2026-01-15: patched: Fixed in v1.15.5

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.