HexBrain

Internet Bug Bounty · Report #2375446

http: Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks

Validstatus
highseverity
$3,495bounty
40upvotes
5 Mar 2024disclosed

Summary

Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks (CVE-2024-22019) - (High) A vulnerability in Node.js HTTP servers allows an attacker to send a specially crafted HTTP request with chunked encoding, leading to resource exhaustion and denial of service (DoS).

The server reads an unbounded number of bytes from a single connection, exploiting the lack of limitations on chunk extension bytes.

The issue can cause CPU and network bandwidth exhaustion, bypassing standard safeguards like timeouts and body size limits.

Impacts:

This vulnerability affects all users in all active release lines: 18.x, 20.x, and 21.x. Thank you, to Bartek Nowotarski for reporting this vulnerability and thank you Paolo Insogna for fixing it.

Full Security Advisory: https://nodejs.org/en/blog/vulnerability/february-2024-security-releases

How it was found

I'd like to report Node.js vulnerability (CVE-2024-22019) that was recently fixed:

Impact

This is a major issue because it allows unbounded resource (CPU, network bandwidth) consumption of the standard Node.js http server. The standard methods which could help blocking a malicious requests like timeouts and limiting request body size do not seem to work.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original