We have identified a bug in Node.js error handling where "Maximum call stack size exceeded" errors become uncatchable when async_hooks.createHook() is enabled. Instead of reaching process.on('uncaughtException'), the process terminates, making the crash unrecoverable. Applications that rely on AsyncLocalStorage (v22, v20) or async_hooks.createHook() (v24, v22, v20) become vulnerable to denial-of-service crashes triggered by deep recursion under specific conditions.
{
"versions": [
{
"introduced": "20.0.0"
},
{
"fixed": "20.20.0"
},
{
"introduced": "22.0.0"
},
{
"fixed": "22.22.0"
},
{
"introduced": "24.0.0"
},
{
"fixed": "24.13.0"
},
{
"introduced": "25.0.0"
},
{
"fixed": "25.3.0"
}
]
}