È stata identificata una vulnerabilità (CVE-2025-47934) nella libreria OpenPGP.js, che consente a un aggressore di inviare un messaggio modificato che verrà percepito dal destinatario come verificato (le funzioni openpgp.verify e openpgp.decrypt restituiranno un'indicazione di verifica riuscita della firma digitale, nonostante il contenuto sia stato sostituito e differisca dai dati per cui la firma è stata creata). La vulnerabilità è stata risolta nelle versioni 5.11.3 e 6.1.1 di OpenPGP.js. Il problema riguarda solo le versioni 5.x e 6.x di OpenPGP.js e non riguarda OpenPGP.js 4.x.
La libreria OpenPGP.js fornisce un'implementazione JavaScript autonoma del protocollo OpenPGP, consentendo di eseguire operazioni di crittografia e di lavorare con firme digitali basate su chiave pubblica nel browser. Il progetto è sviluppato dagli sviluppatori di Proton Mail e, oltre a organizzare la crittografia end-to-end dei messaggi in Proton Mail, è utilizzato in progetti quali FlowCrypt, Mymail-Crypt, UDC, Encrypt.to, PGP Anywhere e Passbolt.
La vulnerabilità riguarda le procedure di verifica delle firme di testo incorporate (openpgp.verify) e dei messaggi firmati e crittografati (penpgp.decrypt). Un aggressore può utilizzare messaggi firmati esistenti per creare nuovi messaggi che, una volta decompressi da una versione vulnerabile di OpenPGP.js, estrarranno un contenuto sostituito diverso dal contenuto del messaggio firmato originale. La vulnerabilità non riguarda le firme distribuite separatamente dal testo (il problema si verifica solo quando la firma viene trasmessa insieme al testo come un unico blocco di dati).
Per creare un messaggio falso, un aggressore ha bisogno solo di un messaggio con una firma incorporata o separata, nonché della conoscenza dei dati originali firmati in tale messaggio. Un aggressore può modificare il messaggio in modo che la firma venga comunque considerata corretta per la versione modificata. Allo stesso modo, i messaggi crittografati con una firma possono essere modificati in modo che, una volta decompressi, vengano restituiti i dati aggiunti dall'aggressore.
Fonte: opennet.ru
