UNKNOWNCVE-2025-6547

pbkdf2 negeert stilletjes Uint8Array-invoer en retourneert statische sleutels

Platform

nodejs

Component

pbkdf2

Opgelost in

3.1.3

### Samenvatting Op historische, maar als ondersteund verklaarde Node.js-versies (0.12-2.x), negeert pbkdf2 stilletjes Uint8Array-invoer Dit heeft alleen invloed op Node.js <3.0.0, maar `pbkdf2` beweert: * Node.js [>= 0.12](https://github.com/browserify/pbkdf2/blob/v3.1.2/package.json#L62) te ondersteunen (en er lijkt een voortdurende inspanning in deze repo te zijn om dat te onderhouden) * `Uint8Array`-invoer te ondersteunen (invoer wordt getypecheckt tegen Uint8Array, en het foutbericht bevat bijvoorbeeld "Password must be a string, a Buffer, a typed array or a DataView" ### Details De fout zit in de `toBuffer`-methode Dit beveiligingslek heeft het zelfs tot tests gehaald: https://github.com/browserify/pbkdf2/commit/eb9f97a66ed83836bebc4ff563a1588248708501 Daar is `resultsOld` (waar mismatch `results`) gewoon ongeldige uitvoer gegenereerd van een leeg wachtwoord/zout in plaats van het geleverde wachtwoord/zout ### PoC Op Node.js/io.js < 3.0.0 ```console > require('pbkdf2').pbkdf2Sync(new Uint8Array([1,2,3]), new Uint8Array([1,3,4]), 1024, 32, 'sha256') <Buffer 21 53 cd 5b a5 f0 15 39 2f 68 e2 40 8b 21 ba ca 0e dc 7b 20 d5 45 a4 8a ea b5 95 9f f0 be bf 66> // Maar dat is gewoon een hash van lege data met een leeg wachtwoord: > require('pbkdf2').pbkdf2Sync('', '', 1024,

Hoe te verhelpen

Geen officiële patch beschikbaar. Zoek naar tijdelijke oplossingen of monitor updates.

Bewaak uw afhankelijkheden automatisch

Ontvang meldingen wanneer nieuwe kwetsbaarheden uw projecten beïnvloeden.

Gratis beginnen