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.
{
"cna_assigner": "hackerone",
"unresolved_ranges": [
{
"source": "AFFECTED_FIELD",
"extracted_events": [
{
"introduced": "4.0"
},
{
"fixed": "4.*"
},
{
"introduced": "5.0"
},
{
"fixed": "5.*"
},
{
"introduced": "6.0"
},
{
"fixed": "6.*"
},
{
"introduced": "7.0"
},
{
"fixed": "7.*"
},
{
"introduced": "8.0"
},
{
"fixed": "8.*"
},
{
"introduced": "9.0"
},
{
"fixed": "9.*"
},
{
"introduced": "10.0"
},
{
"fixed": "10.*"
},
{
"introduced": "11.0"
},
{
"fixed": "11.*"
},
{
"introduced": "12.0"
},
{
"fixed": "12.*"
},
{
"introduced": "13.0"
},
{
"fixed": "13.*"
},
{
"introduced": "14.0"
},
{
"fixed": "14.*"
},
{
"introduced": "15.0"
},
{
"fixed": "15.*"
},
{
"introduced": "17.0"
},
{
"fixed": "17.*"
},
{
"introduced": "19.0"
},
{
"fixed": "19.*"
},
{
"introduced": "20.0"
},
{
"fixed": "20.3.1"
}
]
}
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/30xxx/CVE-2023-30586.json"
}