CVE Catalog

CVE-2026-102414

LowCVSS 3.7
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.28%

19th percentile - higher than 19% of all known CVEs

Summary

The pbkdf2 library through version 3.1.6 re-hashes passwords longer than the digest's block size on every iteration in its JavaScript fallback. Long passwords can block the event loop because the cost is proportional to iterations times password length. Affected are Node.js before 0.12, Bun (1.0.0-1.1.34 and 1.2.6+), Deno 2.9.0+, and direct imports of lib/sync.js.

Risk Assessment

An attacker could use a very long password to block the event loop, leading to denial of service (DoS) in applications using this library. This may impact service availability for other users.

Recommendation

Update the pbkdf2 library to the latest patched version. Additionally, enforce a reasonable maximum password length in your application.

Related vulnerabilities

Original NVD description (English source)

pbkdf2 through 3.1.6 re-hashes passwords longer than the digest's block size on every iteration in its JavaScript fallback (lib/sync.js). A password longer than the block size (64 bytes, or 128 bytes for sha384 and sha512) is passed to HMAC as the key on every iteration, and HMAC hashes such keys in full each time. Cost is therefore O(iterations × password length), and a long password can block the event loop. The fallback is used by pbkdf2Sync and pbkdf2 on Node.js before 0.12, on Bun (1.0.0 through 1.1.34, and 1.2.6 and later), and on Deno 2.9.0 and later, because their native pbkdf2Sync fails the library's feature check. It is also used when lib/sync.js is imported directly. Node.js 0.12 and later, and browser builds (which use lib/sync-browser.js), are not affected. Applications that enforce a reasonable maximum password length are not meaningfully affected.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS