Skip to main content
← All vulnerabilities
CVE-2024-27983

An attacker can make the Node.js HTTP/2 server completely unavailable by sending a small amount of HTTP/2 frames packets with a few HTTP/2 f

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 18.20.1, 20.12.1, 21.7.2
1 proof of concept on GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

An attacker can make the Node.js HTTP/2 server completely unavailable by sending a small amount of HTTP/2 frames packets with a few HTTP/2 frames inside. It is possible to leave some data in nghttp2 memory after reset when headers with HTTP/2 CONTINUATION frame are sent to the server and then a TCP connection is abruptly closed by the client triggering the Http2Session destructor while header frames are still being processed (and stored in memory) causing a race condition.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated
  4. EPSS reached 10%

    FIRST estimates at least a 10% chance of exploitation in the next 30 days

Affected versions

  • NodeJS Node

    From 4.0; From 5.0; From 6.0; From 7.0; From 8.0; From 9.0; From 10.0; From 11.0; From 12.0; From 13.0; From 14.0; From 15.0; From 16.0; From 17.0; From 18.0 · fixed in 18.20.1; From 19.0; From 20.0 · fixed in 20.12.1; From 21.0 · fixed in 21.7.2

References 6

hackerone.com

lists.fedoraproject.org

openwall.com

security.netapp.com

GitHub · lirantal/CVE-2024-27983-nodejs-http2