First published: Fri Jun 30 2023(Updated: )
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.
Credit: support@hackerone.com support@hackerone.com
Affected Software | Affected Version | How to fix |
---|---|---|
Nodejs Node.js | >=20.0.0<20.3.1 | |
Nodejs Node.js | =20.0.0 | |
<=2.0 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2023-30586 is a privilege escalation vulnerability in Node.js 20 that allows loading arbitrary OpenSSL engines and bypasses the permission model when the experimental permission model is enabled.
The severity of CVE-2023-30586 is high, with a severity value of 7.5.
Node.js version 20.0.0 is affected by CVE-2023-30586.
CVE-2023-30586 can be exploited by using the crypto.setEngine() API to bypass the permission model.
Yes, you can find more information about CVE-2023-30586 in the following references: - [HackerOne report](https://hackerone.com/reports/1954535) - [NetApp advisory](https://security.netapp.com/advisory/ntap-20230803-0008/)