Glob: AbortSignal cancellation bypass allows post-timeout filesystem traversal
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 14.0.2
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
The glob npm package (versions from 9.0.0 through 14.0.2) is affected. When an AbortSignal is triggered, the library can keep running file system traversal in the background, which can cause repeated timed-out requests to consume CPU and degrade service availability, though no data exposure or modification was observed.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
Glob matches files using patterns the shell uses. From 9.0.0 until 14.0.2, abort branches in src/walker.ts, including GlobUtil.walkCB(), GlobUtil.walkCB2(), GlobUtil.walkCBSync(), and GlobUtil.walkCB2Sync(), invoke the callbacks without returning. After AbortSignal or AbortSignal.timeout() rejects or emits an error, execution can continue into processor.processPatterns(), readdirCB(), and recursive traversal. The issue affects glob() and globStream() when applications expose attacker-influenced patterns or directory trees and rely on cancellation as a traversal budget. Repeated timed-out requests can stack background filesystem operations and CPU work, degrading worker throughput or service availability; no confidentiality or integrity impact was observed. This issue is fixed in 14.0.2.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- isaacs node-glob
From 9.0.0 · fixed in 14.0.2