CVE-2024-27983 Race condition in Node

High 8.2 Published Updated

An attacker can cause a denial of service in Node.js HTTP/2 servers by exploiting a race condition during connection closure.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2024-27983?

CVE-2024-27983 is a high-severity vulnerability in NodeJS Node, published on 9 Apr 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

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.

Weakness: CWE-362

Which versions are affected by CVE-2024-27983?

2 open source packages ship an affected version, including node and node-min.

PackageAffectedFixed in
node BitnamiAll versions18.20.1, 20.12.1, 21.7.2
node-min BitnamiAll versions18.20.1, 20.12.1, 21.7.2
Linux distribution packages (38)
nodejs Red Hat:rhel_aus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-debuginfo Red Hat:rhel_aus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-debugsource Red Hat:rhel_aus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-devel Red Hat:rhel_aus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-docs Red Hat:rhel_aus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-full-i18n Red Hat:rhel_aus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-nodemon Red Hat:rhel_aus:8.6::appstreamAll versions0:3.0.1-1.module+el8.6.0+19765+366b9144
nodejs-packaging Red Hat:rhel_aus:8.6::appstreamAll versions0:26-1.module+el8.6.0+19856+c0c87259
npm Red Hat:rhel_aus:8.6::appstreamAll versions1:8.19.4-1.16.20.2.5.module+el8.6.0+21811+5a4561ff
nodejs Red Hat:rhel_e4s:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-debuginfo Red Hat:rhel_e4s:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-debugsource Red Hat:rhel_e4s:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-devel Red Hat:rhel_e4s:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-docs Red Hat:rhel_e4s:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-full-i18n Red Hat:rhel_e4s:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-nodemon Red Hat:rhel_e4s:8.6::appstreamAll versions0:3.0.1-1.module+el8.6.0+19765+366b9144
nodejs-packaging Red Hat:rhel_e4s:8.6::appstreamAll versions0:26-1.module+el8.6.0+19856+c0c87259
npm Red Hat:rhel_e4s:8.6::appstreamAll versions1:8.19.4-1.16.20.2.5.module+el8.6.0+21811+5a4561ff
nodejs Red Hat:rhel_eus:8.8::appstreamAll versions1:16.20.2-4.module+el8.8.0+21791+70c4808d.1
nodejs-debuginfo Red Hat:rhel_eus:8.8::appstreamAll versions1:16.20.2-4.module+el8.8.0+21791+70c4808d.1
nodejs-debugsource Red Hat:rhel_eus:8.8::appstreamAll versions1:16.20.2-4.module+el8.8.0+21791+70c4808d.1
nodejs-devel Red Hat:rhel_eus:8.8::appstreamAll versions1:16.20.2-4.module+el8.8.0+21791+70c4808d.1
nodejs-docs Red Hat:rhel_eus:8.8::appstreamAll versions1:16.20.2-4.module+el8.8.0+21791+70c4808d.1
nodejs-full-i18n Red Hat:rhel_eus:8.8::appstreamAll versions1:16.20.2-4.module+el8.8.0+21791+70c4808d.1
nodejs-nodemon Red Hat:rhel_eus:8.8::appstreamAll versions0:3.0.1-1.module+el8.8.0+19764+7eed1ca3
nodejs-packaging Red Hat:rhel_eus:8.8::appstreamAll versions0:26-1.module+el8.8.0+19857+6d2a104d
npm Red Hat:rhel_eus:8.8::appstreamAll versions1:8.19.4-1.16.20.2.4.module+el8.8.0+21791+70c4808d.1
rh-nodejs14-nodejs Red Hat:rhel_software_collections:3::el7All versions0:14.21.3-7.el7
rh-nodejs14-nodejs-debuginfo Red Hat:rhel_software_collections:3::el7All versions0:14.21.3-7.el7
rh-nodejs14-nodejs-devel Red Hat:rhel_software_collections:3::el7All versions0:14.21.3-7.el7
rh-nodejs14-nodejs-docs Red Hat:rhel_software_collections:3::el7All versions0:14.21.3-7.el7
rh-nodejs14-nodejs-full-i18n Red Hat:rhel_software_collections:3::el7All versions0:14.21.3-7.el7
rh-nodejs14-npm Red Hat:rhel_software_collections:3::el7All versions0:6.14.18-14.21.3.7.el7
nodejs Red Hat:rhel_tus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-debuginfo Red Hat:rhel_tus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-debugsource Red Hat:rhel_tus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-devel Red Hat:rhel_tus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff
nodejs-docs Red Hat:rhel_tus:8.6::appstreamAll versions1:16.20.2-5.module+el8.6.0+21811+5a4561ff

How do I fix CVE-2024-27983?

Upgrade node to a fixed version for your release line: 18.20.1, 20.12.1 or 21.7.2.

Is CVE-2024-27983 being exploited?

There is no known exploitation of CVE-2024-27983 in the wild and no public exploit code.

Public exploit code: 1 proofs of concept on GitHub.

Sources

Also known as ALPINE-CVE-2024-27983, AZL-39584, AZL-39587, BELL-CVE-2024-27983, BIT-node-2024-27983, BIT-node-min-2024-27983 and 9 more.

Is CVE-2024-27983 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free