CVE-2022-32213: llhttp HTTP request smuggling via flawed Transfer-Encoding parsing

CVE-2022-32213 · Severity: low · CVSS 3.1 · Published 2022-07-15

llhttp is an HTTP parser used by Node.js to process incoming web requests. A flaw in how it parses the Transfer-Encoding header allows attackers to send specially crafted HTTP requests that bypass security checks and smuggle malicious payloads through proxies and firewalls. This can lead to cache poisoning, credential theft, or unauthorized access to backend systems.

Technologies: llhttp (npm). Vendors: npm.

Quick answers

Is CVE-2022-32213 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2022-32213 being exploited in the wild.
How severe is CVE-2022-32213?
Low severity, with a CVSS score of 3.1, published 15 July 2022.
Which products and versions are affected?
llhttp (npm) SEMVER:introduced=0,fixed=6.0.7.
Is there a fix for CVE-2022-32213?
Yes. llhttp (npm): upgrade to 6.0.7 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2022-32213 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2022-32213?
Check whether you run llhttp (npm) 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

  • llhttp (npm): upgrade to 6.0.7 or later
    npm install llhttp@6.0.7

Technical details

The vulnerability is an HTTP request smuggling (CWE-444) flaw in the llhttp parser's handling of Transfer-Encoding headers. The parser does not correctly validate and parse Transfer-Encoding header values, allowing attackers to craft requests that are interpreted differently by the HTTP parser and downstream servers. An attacker can send a network-based HTTP request with a malformed Transfer-Encoding header; no authentication or user interaction is required. Successful exploitation enables HTTP request smuggling attacks, which can result in cache poisoning, session fixation, credential theft, or server-side request forgery depending on downstream application logic. Patches are available in llhttp v6.0.7 and v2.1.5, which were backported into Node.js versions 18.x, 16.x, and 14.x.

Affected products

  • nodejs llhttp before 6.0.7 and before 2.1.5
  • nodejs Node.js 14.x, 16.x, 18.x (affected until patched)

Identifiers

  • CVE-2022-32213
  • GHSA-5689-v88g-g6rv

Timeline

  • 2022-07-15: disclosed: Vulnerability publicly disclosed via GHSA-5689-v88g-g6rv
  • 2022-07-06: patched: llhttp v6.0.7 released with fix
  • 2022-07: other: Node.js security releases for affected versions (14.x, 16.x, 18.x)

References

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