p PatchFirst

CVE-2023-30589

CVE-2023-30589

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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

CVSS 7.5 · High · EPSS 3.9% · Fix available

Published
Updated

Stack: system · node

Affected products and versions

  • node.js

    Versions
    • ≥ 4.0, < 4.*: Affected (semver)
    • ≥ 5.0, < 5.*: Affected (semver)
    • ≥ 6.0, < 6.*: Affected (semver)
    • ≥ 7.0, < 7.*: Affected (semver)
    • ≥ 8.0, < 8.*: Affected (semver)
    • ≥ 9.0, < 9.*: Affected (semver)
    • ≥ 10.0, < 10.*: Affected (semver)
    • ≥ 11.0, < 11.*: Affected (semver)
    • ≥ 12.0, < 12.*: Affected (semver)
    • ≥ 13.0, < 13.*: Affected (semver)
    • ≥ 14.0, < 14.*: Affected (semver)
    • ≥ 15.0, < 15.*: Affected (semver)
    • ≥ 16.0, < 16.20.1: Affected (semver)
    • ≥ 17.0, < 17.*: Affected (semver)
    • ≥ 18.0, < 18.16.1: Affected (semver)
    • ≥ 19.0, < 19.*: Affected (semver)
    • ≥ 20.0, < 20.3.1: Affected (semver)

    Update to 16.20.1; Update to 18.16.1; Update to 20.3.1

  • nodejs Debian:12

    Versions
    • 18.13.0+dfsg1-1
    • 18.13.0+dfsg1-1.1
    • 18.19.0+dfsg-1
    • 18.19.0+dfsg-2
    • 18.19.0+dfsg-3
    • 18.19.0+dfsg-4
    • 18.19.0+dfsg-5
    Affected ranges
    • ECOSYSTEM: < 18.19.0+dfsg-6~deb12u1

    Update to 18.19.0+dfsg-6~deb12u1

  • nodejs Debian:13

    Affected ranges
    • ECOSYSTEM: < 18.13.0+dfsg1-1.1

    Update to 18.13.0+dfsg1-1.1

  • nodejs Debian:14

    Affected ranges
    • ECOSYSTEM: < 18.13.0+dfsg1-1.1

    Update to 18.13.0+dfsg1-1.1

  • llhttp npm

    Affected ranges
    • SEMVER: < 8.1.1

    Update to 8.1.1

Original sources

Check your server →