A flaw in Node.js `crypto` causes the internal entropy caches used by `crypto.randomUUID()`, `crypto.randomUUIDv7()`, and `crypto.randomInt(
- 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
- 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
Node.js applications that use the `crypto` module's `randomUUID()`, `randomUUIDv7()`, or `randomInt()` functions, including startup snapshots and single executable applications built with snapshots, are affected. Because cached random values can be saved into the snapshot and reused by every process started from it, generated IDs may collide across processes and random values may be predictable by an attacker who observes another process.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
A flaw in Node.js `crypto` causes the internal entropy caches used by `crypto.randomUUID()`, `crypto.randomUUIDv7()`, and `crypto.randomInt()` to be saved into user-land startup snapshots (`--build-snapshot`) and single executable applications built with `useSnapshot`. If any of these functions, or an API that relies on them such as `URL.createObjectURL()`, is called while the snapshot is built, every process started from that snapshot returns the same values until the cache is refilled: up to 127 UUIDs and about 1,000 `randomInt()` values. Identifiers expected to be unique can collide across processes, and values issued by one process can be predicted by observing another. This vulnerability affects Node.js 26.x, 24.x, and 22.x.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- nodejs node
From 22.23.3 · through 22.23.3; From 24.22.0 · through 24.22.0; From 26.12.0 · through 26.12.0