Skip to main content

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') in nodejs

CVE-2024-27983

  • nodejs
Severity High
Score 8.2/10

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. This vulnerability affects the nodejs versions 18.0.0 through 18.20.0, 20.0.0 through 20.12.0, and 21.0.0 through 21.7.1.

  • LOW
  • NETWORK
  • LOW
  • UNCHANGED
  • NONE
  • NONE
  • NONE
  • HIGH

CWE-362 - Race Condition

A race condition occurs in a shared memory program when two threads/processes access the same shared memory data, and at least one thread executes a write operation. This vulnerability manipulates the time to check vs. time to use (TOC/TOU) gap between the threads in the critical section to cause disorientation in the shared data. The impact can vary from compromising the confidentiality of the system to causing the system to crash or to execute arbitrary code.

Advisory Timeline

  • Published