UNKNOWNCVE-2025-6547

pbkdf2 ignore silencieusement l'entrée Uint8Array, renvoyant des clés statiques

Plateforme

nodejs

Composant

pbkdf2

Corrigé dans

3.1.3

### Résumé Sur les versions historiques mais déclarées comme prises en charge de Node.js (0.12-2.x), pbkdf2 ignore silencieusement l'entrée Uint8Array Cela n'affecte que Node.js <3.0.0, mais `pbkdf2` prétend : * Prendre en charge Node.js [>= 0.12](https://github.com/browserify/pbkdf2/blob/v3.1.2/package.json#L62) (et il semble y avoir un effort continu dans ce dépôt pour maintenir cela) * Prendre en charge l'entrée `Uint8Array` (l'entrée est vérifiée par rapport à Uint8Array, et le message d'erreur inclut par exemple "Password must be a string, a Buffer, a typed array or a DataView" ### Détails L'erreur se trouve dans la méthode `toBuffer` Cette vulnérabilité s'est même retrouvée dans les tests : https://github.com/browserify/pbkdf2/commit/eb9f97a66ed83836bebc4ff563a1588248708501 Là, `resultsOld` (où l'inadéquation `results`) est juste une sortie invalide générée à partir d'un mot de passe/sel vide au lieu de celui fourni ### PoC Sur 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> // Mais ce n'est qu'un hachage de données vides avec un mot de passe vide : > require('pbkdf2').pbkdf2Sync('', '', 1024,

Comment corriger

Aucun correctif officiel disponible. Recherchez des alternatives ou surveillez les mises à jour.

Surveillez vos dépendances automatiquement

Recevez des alertes quand de nouvelles vulnérabilités affectent vos projets.

Commencer gratuitement