CVE-2023-30589 llhttp vulnerable to HTTP request smuggling

High 7.5 Published Updated

Attackers can exploit HTTP request smuggling in Node.js by bypassing header delimiters, potentially leading to cache poisoning or security bypasses.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2023-30589?

CVE-2023-30589 is a high-severity vulnerability in Fedoraproject Fedora, published on 30 Jun 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

The llhttp parser in the http module in Node v20.2.0 does not strictly use the CRLF sequence to delimit HTTP requests. This can lead to HTTP Request Smuggling (HRS). The CR character (without LF) is sufficient to delimit HTTP header fields in the llhttp parser. According to RFC7230 section 3, only the CRLF sequence should delimit each header-field. This impacts all Node.js active versions: v16, v18, and, v20

Which versions are affected by CVE-2023-30589?

4 open source packages ship an affected version, including llhttp, node and node-min. It affects 2 products.

PackageAffectedFixed in
llhttp npmAll versions8.1.1
llhttp npmAll versions8.1.1
node BitnamiFrom 16.0.016.20.1, 18.16.1, 20.3.1
node-min BitnamiFrom 16.0.016.20.1, 18.16.1, 20.3.1
Linux distribution packages (1)
python-httptools openSUSE:TumbleweedAll versions0.8.0-1.3

Products include Fedoraproject Fedora, Nodejs Node.js.

How do I fix CVE-2023-30589?

Upgrade llhttp to 8.1.1 or later.

Is CVE-2023-30589 being exploited?

There is no known exploitation of CVE-2023-30589 in the wild and no public exploit code.

All Fedoraproject Fedora vulnerabilities

Sources

Also known as AZL-27278, AZL-27279, BIT-node-2023-30589, BIT-node-min-2023-30589, CLEANSTART-2026-LJ66214, DEBIAN-CVE-2023-30589 and 3 more.

Is CVE-2023-30589 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free