UNKNOWNCVE-2023-46234

Problème de vérification de limite supérieure dans `dsaVerify` de browserify-sign menant à une attaque de falsification de signature

Plateforme

nodejs

Composant

browserify-sign

Corrigé dans

4.2.2

### Résumé Un problème de vérification de limite supérieure dans la fonction `dsaVerify` permet à un attaquant de construire des signatures qui peuvent être vérifiées avec succès par n'importe quelle clé publique, conduisant ainsi à une attaque de falsification de signature. ### Détails Dans la fonction `dsaVerify`, elle vérifie si la valeur de la signature est légale en appelant la fonction `checkValue`, à savoir si `r` et `s` sont tous deux dans l'intervalle `[1, q - 1]`. Cependant, la deuxième ligne de la fonction `checkValue` vérifie incorrectement la limite supérieure des paramètres passés, car la valeur de `b.cmp(q)` ne peut être que `0`, `1` et `-1`, et elle ne peut jamais être supérieure à `q`. De cette façon, bien que les valeurs de `s` ne puissent pas être `0`, un attaquant peut obtenir le même effet que zéro en définissant sa valeur sur `q`, puis envoyer `(r, s) = (1, q)` pour passer la vérification de n'importe quelle clé publique. ### Impact Tous les endroits de ce projet qui impliquent la vérification DSA (DSA verification) des signatures saisies par l'utilisateur seront affectés par cette vulnérabilité. ### Correctif PR: Étant donné que le fork privé temporaire a été supprimé, voici une archive web des pages de discussion et de diff du PR : [PR webarchive.zip](https://github.com/browserify/browserify-sign/files/13172957/PR.webarchive.zip)

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