PatchSiren cyber security CVE debrief
CVE-2026-3449 TooTallNate CVE debrief
## Summary CVE-2026-3449 is a **LOW-severity** vulnerability (CVSS 4.0: 1.9) in the npm package `@tootallnate/once` affecting versions prior to 3.0.1. The issue involves **Incorrect Control Flow Scoping (CWE-705)** when using the `AbortSignal` option, causing Promises to remain in a permanently pending state after signal abortion. This can lead to stalled requests, blocked workers, or degraded application availability. ## Technical Details The vulnerability occurs in promise resolution logic when an `AbortSignal` is provided. Upon signal abortion, the Promise fails to reject or resolve, leaving it in a hanging state. Any code awaiting this Promise or using `.then()` will block indefinitely, creating a control-flow leak that can accumulate over time and degrade system performance. ## Affected Versions - **Package:** `@tootallnate/once` - **Vulnerable:** < 3.0.1 - **Patched:** 3.0.1 ## Risk Assessment | Factor | Assessment | |--------|-----------| | **Severity** | LOW (CVSS 1.9) | | **Attack Vector** | Local | | **Privileges Required** | Low | | **Availability Impact** | Low | | **Exploitability** | Proof-of-concept exists | | **KEV Listed** | No | The low severity reflects the local attack vector and limited availability impact, though the indefinite hanging behavior poses operational risks in long-running applications. ## Recommended Actions 1. **Upgrade** to `@tootallnate/once` version 3.0.1 or later 2. **Audit dependencies** for transitive usage of vulnerable versions 3. **Implement timeouts** on Promise-based operations as defense-in-depth 4. **Monitor** for stalled requests or worker thread exhaustion in production ## Timeline - **2026-03-03:** CVE published - **2026-05-19:** CVE last modified
- Vendor
- TooTallNate
- Product
- @tootallnate/once
- CVSS
- LOW 1.9
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-03-03
- Original CVE updated
- 2026-05-19
- Advisory published
- 2026-03-03
- Advisory updated
- 2026-05-19
Who should care
Node.js developers using @tootallnate/once for promise-based flow control, particularly in server applications or worker pools where AbortSignal is used for cancellation patterns.
Technical summary
The @tootallnate/once package before 3.0.1 fails to properly handle AbortSignal abortion, leaving Promises in a permanently pending state. This causes indefinite blocking of await/.then() chains, potentially leading to resource exhaustion in applications using abortable operations.
Defensive priority
low
Recommended defensive actions
- Upgrade to @tootallnate/once version 3.0.1 or later
- Audit dependencies for transitive usage of vulnerable versions
- Implement timeouts on Promise-based operations as defense-in-depth
- Monitor for stalled requests or worker thread exhaustion in production
Evidence notes
Vulnerability reported via Snyk. Fix commit and issue discussion available in source repository. NVD status: Deferred.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-3449 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-3449
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-3449 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-3449
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://github.com/TooTallNate/once/commit/b9f43cc5259bee2952d91ad3cdbd201a82df448a
-
Source reference
Unverified legacy reference
URL: https://github.com/TooTallNate/once/issues/8
-
Source reference
Unverified legacy reference
URL: https://security.snyk.io/vuln/SNYK-JS-TOOTALLNATEONCE-15250612
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.