Dans la bibliothèque JavaScript xml-crypto, utilisée comme dépendance par 402 projets et téléchargée depuis le répertoire NPM environ un million de fois chaque semaine, une vulnérabilité a été identifiée (CVE-2024-32962) qui a reçu le niveau de dangerosité maximum (10 sur 10). La bibliothèque fournit des fonctions pour le chiffrement et la vérification des signatures numériques des documents XML. La vulnérabilité permet à un attaquant de certifier un document fictif qui, dans la configuration par défaut, sera vérifié avec succès par la bibliothèque, même s'il est signé avec une clé différente de celle spécifiée pour la vérification des signatures. Le problème apparaît à partir de la version xml-crypto 4.0.0 et a été corrigé sans bruit dans la version 6.0.0 de janvier.
La vulnérabilité est causée par le fait que, dans la configuration par défaut, la bibliothèque n'autorise pas le créateur de la signature, mais vérifie uniquement la validité même de la signature. En particulier, la bibliothèque fait confiance à tout certificat placé dans le document signé dans l'élément XML KeyInfo, même si les paramètres spécifient l'utilisation d'un certificat particulier pour la vérification des signatures numériques. Ainsi, pour réussir la vérification d'un document modifié, l'attaquant n'a qu'à remplacer la signature numérique originale par une signature formée avec sa propre clé privée et à placer le certificat associé à cette clé privée (clé publique) dans l'élément KeyInfo.
Source : opennet.ru
