U biblioteci OpenPGP.js identifikovana je ranjivost (CVE-2025-47934) koja omogućava napadaču slanje modificirane poruke koju će primalac percipirati kao verifikovanu (funkcije openpgp.verify i openpgp.decrypt će vratiti indikaciju uspješne verifikacije digitalnog potpisa, uprkos činjenici da je sadržaj zamijenjen i razlikuje se od podataka za koje je potpis kreiran). Ranjivost je ispravljena u izdanjima OpenPGP.js 5.11.3 i 6.1.1. Problem utiče samo na grane OpenPGP.js 5.x i 6.x, a ne utiče na OpenPGP.js 4.x.
Biblioteka OpenPGP.js pruža samostalnu JavaScript implementaciju OpenPGP protokola, omogućavajući vam izvođenje operacija šifriranja i rad s digitalnim potpisima zasnovanim na javnom ključu u pregledniku. Projekt razvijaju programeri Proton Maila i, pored organiziranja end-to-end enkripcije poruka u Proton Mailu, koristi se u projektima kao što su FlowCrypt, Mymail-Crypt, UDC, Encrypt.to, PGP Anywhere i Passbolt.
Ranjivost utiče na procedure verifikacije ugrađenih tekstualnih potpisa (openpgp.verify) i potpisanih i šifriranih poruka (penpgp.decrypt). Napadač može koristiti postojeće potpisane poruke za formiranje novih poruka koje će, kada ih raspakuje ranjiva verzija OpenPGP.js-a, izdvojiti zamijenjeni sadržaj koji se razlikuje od sadržaja originalne potpisane poruke. Ranjivost ne utiče na potpise distribuirane odvojeno od teksta (problem se javlja samo kada se potpis prenosi zajedno s tekstom kao jedan blok podataka).
Da bi kreirao lažnu poruku, napadaču je potrebna samo jedna poruka sa ugrađenim ili odvojenim potpisom, kao i poznavanje originalnih podataka potpisanih u toj poruci. Napadač može izmijeniti poruku tako da se potpis i dalje smatra ispravnim za izmijenjenu verziju. Slično tome, šifrirane poruke s potpisom mogu se modificirati tako da se prilikom raspakiranja vrate podaci koje je dodao napadač.
izvor: opennet.ru
