CVE-2026-3449: @tootallnate/once · Incorrect Control Flow Scoping
Affects @tootallnate/onceSource CVE Database V5
Public exploit available · CVSS 4.8 Medium : upgrade to 3.0.1 as a priority.
Data as of 30 Oct 2026, 11:52 UTC
- EPSS
- 0.1% chance of exploitation in 30 days – higher than 2% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 3.0.1
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:PExploitation evidence
Disclosed: evidence found.
CVE published 3 Mar 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: evidence found.
CVSS exploit maturity: proof of concept public
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), CVSS vector, the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.
What to do
Upgrade @tootallnate/once to 3.0.1.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| @tootallnate/once | Affected
| Fixed in
|
npm@tootallnate/oncepkg:npm/@tootallnate/onceOther threats | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
The vulnerability affects versions before 3.0.1, indicating that upgrading to version 3.0.1 or later may resolve the issue. Users should verify with the package maintainers or official advisories for confirmed remediation. Until then, consider avoiding use of the AbortSignal option with affected versions or implement application-level timeouts to mitigate indefinite hanging.
Description
Versions of the package @tootallnate/once before 3.0.1 are vulnerable to Incorrect Control Flow Scoping in promise resolving when AbortSignal option is used. The Promise remains in a permanently pending state after the signal is aborted, causing any await or .then() usage to hang indefinitely. This can cause a control-flow leak that can lead to stalled requests, blocked workers, or degraded application availability.