CVE-2023-30586 Privilege escalation in Node
Attackers can bypass Node.js experimental permission model via OpenSSL engines to escalate privileges and disable security controls.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2023-30586?
CVE-2023-30586 is a high-severity vulnerability in Nodejs Node.js, published on 30 Jun 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
A privilege escalation vulnerability exists in Node.js 20 that allowed loading arbitrary OpenSSL engines when the experimental permission model is enabled, which can bypass and/or disable the permission model. The attack complexity is high. However, the crypto.setEngine() API can be used to bypass the permission model when called with a compatible OpenSSL engine. The OpenSSL engine can, for example, disable the permission model in the host process by manipulating the process's stack memory to locate the permission model Permission::enabled_ in the host process's heap memory. Please note that at the time this CVE was issued, the permission model is an experimental feature of Node.js.
Weakness: CWE-862
Which versions are affected by CVE-2023-30586?
2 open source packages ship an affected version, including node and node-min. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
node Bitnami | From 20.0.0 | 20.3.1 |
node-min Bitnami | From 20.0.0 | 20.3.1 |
Products include Nodejs Node.js.
How do I fix CVE-2023-30586?
Upgrade node to 20.3.1 or later.
Is CVE-2023-30586 being exploited?
There is no known exploitation of CVE-2023-30586 in the wild and no public exploit code.
Other vulnerabilities in Nodejs Node.js
Sources
Also known as BIT-node-2023-30586, BIT-node-min-2023-30586, GHSA-jvqw-9mq6-23h9.