CVE-2025-59466: Uncatchable "Maximum call stack size exceeded" error on Node.js via async_hooks leads to process crashes bypassing error handlers

Published Jan 13, 2026
·
Updated

We have identified a bug in Node.js error handling where "Maximum call stack size exceeded" errors become uncatchable when asynchooks.createHook() is enabled. Instead of reaching process.on('uncaughtException'), the process terminates, making the crash unrecoverable. Applications that rely on AsyncLocalStorage (v22, v20) or asynchooks.createHook() (v24, v22, v20) become vulnerable to denial-of-service crashes triggered by deep recursion under specific conditions.

Other sources

We have identified a bug in Node.js error handling where "Maximum call stack size exceeded" errors become uncatchable when asynchooks.createHook() is enabled. Instead of reaching process.on('uncaughtException'), the process terminates, making the crash unrecoverable. Applications that rely on AsyncLocalStorage (v22, v20) or asynchooks.createHook() (v24, v22, v20) become vulnerable to denial-of-service crashes triggered by deep recursion under specific conditions.

This patch improves recoverability in one edge case, but it does not remove the broader risk. Recovery from space exhaustion is unspecified, best‑effort behavior and is not a reliable basis for availability or security. In availability‑critical paths where recursion depth may be influenced by untrusted input, prefer input validation and designs that bound or avoid recursion rather than depending on stack space exhaustion behavior or the lack of tail‑call optimizations in the runtime/engine. See this blog post for details.

— Node.Js

Affected Software

11 affected componentsFixes available
npm/node>=20.0.0<24.0.0
npm/node>=20.0.0<=22.0.0
Nodejs Node.js>=20.0.0<20.20.0
Nodejs Node.js>=22.0.0<22.22.0
Nodejs Node.js>=24.0.0<24.13.0
Nodejs Node.js>=25.0.0<25.3.0
Node.js Node.js>=20.0.0<20.20.0, >=22.0.0<22.22.0, >=24.0.0<24.13.0, >=25.0.0<25.3.0
20.20.022.22.024.13.025.3.0
Node.js Node.js>=20.0.0<20.20.0
20.20.0
Node.js Node.js>=22.0.0<22.22.0
22.22.0
Node.js Node.js>=24.0.0<24.13.0
24.13.0
Node.js Node.js>=25.0.0<25.3.0
25.3.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 20.20.0Fixed in 22.22.0Fixed in 24.13.0Fixed in 25.3.0
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 20.20.0
  3. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 22.22.0
  4. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 24.13.0
  5. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 25.3.0
  6. Compensating control

    In availability-critical paths where recursion depth may be influenced by untrusted input, validate input and use designs that bound or avoid recursion rather than relying on stack-space exhaustion behavior or lack of tail-call optimization.

Event History

Jan 13, 2026
CVE Published
via Node.js·12:00 AM
Data Sourced
via Node.js·12:00 AM
DescriptionSeverityAffected Software
Jan 20, 2026
CVE Published
via MITRE·08:41 PM
Data Sourced
via MITRE·08:41 PM
DescriptionSeverity
Data Sourced
via Red Hat·09:02 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·09:16 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-59466?

CVE-2025-59466 has a high severity due to the uncatchable 'Maximum call stack size exceeded' errors that can lead to application crashes.

2

How do I fix CVE-2025-59466?

To resolve CVE-2025-59466, upgrade Node.js to versions 20.0.0 and above, or 22.0.0 and above where the issue has been patched.

3

Which Node.js versions are affected by CVE-2025-59466?

CVE-2025-59466 affects Node.js versions between 20.0.0 and 24.0.0, including versions 20.0.0 to 22.0.0.

4

What happens when CVE-2025-59466 is triggered?

When CVE-2025-59466 is triggered, the process abruptly terminates instead of invoking the usual error handling mechanisms.

5

Is there a workaround for CVE-2025-59466 if immediate upgrade isn't possible?

An effective workaround for CVE-2025-59466 is to disable async_hooks.createHook() in your Node.js application to prevent uncatchable errors.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203