{"id":"CVE-2023-30586","details":"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.","aliases":["BIT-node-2023-30586","BIT-node-min-2023-30586"],"modified":"2026-03-13T07:35:34.336140Z","published":"2023-07-01T00:15:10.247Z","related":["CGA-9c85-p969-2p33","MGASA-2023-0226","openSUSE-SU-2024:13021-1"],"references":[{"type":"ADVISORY","url":"https://security.netapp.com/advisory/ntap-20230803-0008/"},{"type":"REPORT","url":"https://hackerone.com/reports/1954535"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/nodejs/node","events":[{"introduced":"e7618fb5a5fc25d76b6474e2a6607f04fd6f10e0"},{"fixed":"9869bdc93d7bd8b439c4a2598607ee779483ee53"}],"database_specific":{"versions":[{"introduced":"20.0.0"},{"fixed":"20.3.1"}]}}],"versions":["v20.0.0","v20.1.0","v20.2.0","v20.3.0"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-30586.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}]}