În biblioteca OpenPGP.js a fost descoperită o vulnerabilitate (CVE-2025-47934) care permite unui atacator să trimită un mesaj modificat, perceput de destinatar ca fiind verificat (funcțiile openpgp.verify și openpgp.decrypt vor returna un indicator de verificare reușită a semnăturii digitale, în ciuda faptului că conținutul a fost înlocuit și diferă de datele pentru care a fost creată semnătura). Vulnerabilitatea a fost corectată în versiunile OpenPGP.js 5.11.3 și 6.1.1. Problema apare doar în ramurile OpenPGP.js 5.x și 6.x și nu afectează OpenPGP.js 4.x.
Biblioteca OpenPGP.js oferă o implementare autonomă a protocolului OpenPGP în JavaScript, permițând realizarea operațiunilor de criptare în browser și lucrul cu semnături digitale bazate pe chei publice. Proiectul este dezvoltat de dezvoltatorii Proton Mail și, pe lângă organizarea criptării end-to-end a mesajelor în Proton Mail, este utilizat în proiecte precum FlowCrypt, Mymail-Crypt, UDC, Encrypt.to, PGP Anywhere și Passbolt.
Vulnerabilitatea afectează procedurile de verificare încorporate în textul semnăturii (openpgp.verify) și mesajele semnate și criptate (openpgp.decrypt). Atacatorul poate folosi mesajele semnate existente pentru a genera mesaje noi, în urma desfășurării cărora, versiunea vulnerabilă a OpenPGP.js va extrage conținutul substituit, diferit de conținutul mesajului original semnat. Vulnerabilitatea nu afectează semnăturile difuzate separat de text (problema apare doar în timpul transmiterii semnăturii împreună cu textul ca un bloc unic de date).
Pentru a genera un mesaj substituit, atacatorului îi este suficient să aibă un mesaj cu semnătură încorporată sau separată, precum și cunoștințele despre datele originale semnate în acest mesaj. Atacatorul poate modifica mesajul astfel încât varianta modificată să continue să fie considerată corectă. De asemenea, este posibil să se modifice mesajele criptate cu semnătură, la desfășurarea cărora vor fi returnate datele adăugate de atacator.
Sursa: opennet.ro
