CVE-2023-30589

Summary

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

Affected Software

VendorProductVersion RangeStatus
NodeJSNode4.0 < 4.*affected
NodeJSNode5.0 < 5.*affected
NodeJSNode6.0 < 6.*affected
NodeJSNode7.0 < 7.*affected
NodeJSNode8.0 < 8.*affected
NodeJSNode9.0 < 9.*affected
NodeJSNode10.0 < 10.*affected
NodeJSNode11.0 < 11.*affected
NodeJSNode12.0 < 12.*affected
NodeJSNode13.0 < 13.*affected
NodeJSNode14.0 < 14.*affected
NodeJSNode15.0 < 15.*affected
NodeJSNode16.0 < 16.20.1affected
NodeJSNode17.0 < 17.*affected
NodeJSNode18.0 < 18.16.1affected
NodeJSNode19.0 < 19.*affected
NodeJSNode20.0 < 20.3.1affected

Weaknesses

ADP Enrichment

CVE Program Container

Additional References

References