PT-2026-102444 · Npm+3 · Pbkdf2+3
CVSS v4.0
6.3
Medium
| Vector | AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N |
Name of the Vulnerable Software and Affected Versions
pbkdf2 versions prior to 3.1.7
Description
The JavaScript fallback in
lib/sync.js re-hashes passwords that exceed the digest's block size (64 bytes, or 128 bytes for sha384 and sha512) during every iteration. This occurs because the password is passed to HMAC as the key on each iteration, and HMAC hashes such keys in full every time. This results in a computational cost of O(iterations × password length), which can lead to the event loop being blocked when processing long passwords. This fallback is triggered by pbkdf2Sync() and pbkdf2() on Bun versions 1.0.0 through 1.1.34 and 1.2.6 and later, Deno 2.9.0 and later, and Node.js versions prior to 0.12, as well as when lib/sync.js is imported directly.Recommendations
Update to a version later than 3.1.6.
Enforce a reasonable maximum password length to mitigate the risk of event loop blocking.
Exploit
Fix
DoS
Resource Exhaustion
Found an issue in the description? Have something to add? Feel free to write us 👾
Weakness Enumeration
Related Identifiers
Affected Products
Bun
Deno
Node.Js
Pbkdf2