Une vulnérabilité a été identifiée dans la bibliothèque OpenPGP.js (CVE-2025-47934), permettant à un attaquant d'envoyer un message modifié, qui sera perçu par le destinataire comme vérifié (les fonctions openpgp.verify et openpgp.decrypt renverront un indicateur de vérification réussie de la signature numérique, même si le contenu a été remplacé et diffère des données pour lesquelles la signature a été créée). La vulnérabilité a été corrigée dans les versions OpenPGP.js 5.11.3 et 6.1.1. Le problème se manifeste uniquement dans les branches OpenPGP.js 5.x et 6.x, sans affecter OpenPGP.js 4.x.
La bibliothèque OpenPGP.js fournit une implémentation autonome du protocole OpenPGP en JavaScript, permettant d'effectuer des opérations de cryptage dans le navigateur et de travailler avec des signatures numériques basées sur des clés publiques. Le projet est développé par les créateurs de Proton Mail et, en plus de l'organisation du chiffrement de bout en bout des messages dans Proton Mail, il est utilisé dans des projets comme FlowCrypt, Mymail-Crypt, UDC, Encrypt.to, PGP Anywhere et Passbolt.
La vulnérabilité concerne les procédures de vérification intégrées dans le texte de la signature (openpgp.verify) et les messages signés et chiffrés (openpgp.decrypt). Un attaquant peut utiliser des messages signés existants pour créer de nouveaux messages, dans lesquels une version vulnérable d'OpenPGP.js extraira le contenu substitué, différent de celui du message signé d'origine. La vulnérabilité n'affecte pas les signatures diffusées séparément du texte (le problème se manifeste uniquement lors de la transmission de la signature avec le texte dans un seul bloc de données).
Pour créer un message frauduleux, il suffit à l'attaquant d'avoir un message avec une signature intégrée ou séparée, ainsi que de connaître les données d'origine signées dans ce message. L'attaquant peut modifier le message de telle sorte que la signature continue d'être considérée comme valide pour la version modifiée. De même, il est possible de modifier des messages chiffrés avec signature, pour lesquels des données ajoutées par l'attaquant seront retournées lors de la décompression.
Source : opennet.ru
