Skip to content
OpenAdvisories
High · 7.5 CVE-2023-30586 EUVD-2023-34967GHSA-jvqw-9mq6-23h9

A privilege escalation vulnerability exists in Node.js 20 that allowed loading arbitrary OpenSSL engines when the experimental permission m…

Published Jun 30, 2023 · Updated May 8, 2025 · Assigned by hackerone

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.

Affected products

VendorProductAffectedFixed
NodeJS Node 4.0 – < 4.*, 5.0 – < 5.*, 6.0 – < 6.*, 7.0 – < 7.*, 8.0 – < 8.*, 9.0 – < 9.*, 10.0 – < 10.*, 11.0 – < 11.*, 12.0 – < 12.*, 13.0 – < 13.*, 14.0 – < 14.*, 15.0 – < 15.*, 17.0 – < 17.*, 19.0 – < 19.*, 20.0 – < 20.3.1 4.*

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
openSUSE Tumbleweed nodejs20 20.3.1-1.1 openSUSE-SU-2024:13021-1

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling nodejs-20 20.3.1-r0 —

Advisories 5

References