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.
OS | Version | Architecture | Package | Version | Filename |
---|---|---|---|---|---|
Debian | 12 | all | nodejs | < 18.13.0+dfsg1-1 | nodejs_18.13.0+dfsg1-1_all.deb |
Debian | 11 | all | nodejs | < 12.22.12~dfsg-1~deb11u4 | nodejs_12.22.12~dfsg-1~deb11u4_all.deb |
Debian | 10 | all | nodejs | < 10.24.0~dfsg-1~deb10u1 | nodejs_10.24.0~dfsg-1~deb10u1_all.deb |
Debian | 999 | all | nodejs | < 20.13.1+dfsg-2 | nodejs_20.13.1+dfsg-2_all.deb |
Debian | 13 | all | nodejs | < 20.13.1+dfsg-2 | nodejs_20.13.1+dfsg-2_all.deb |