Uma vulnerabilidade (CVE-2025-47934) foi identificada na biblioteca OpenPGP.js, permitindo que um invasor envie uma mensagem modificada que será percebida pelo destinatário como verificada (as funções openpgp.verify e openpgp.decrypt retornarão uma indicação de verificação bem-sucedida da assinatura digital, apesar do fato de que o conteúdo foi substituído e difere dos dados para os quais a assinatura foi criada). A vulnerabilidade foi corrigida nas versões OpenPGP.js 5.11.3 e 6.1.1. O problema afeta apenas as ramificações do OpenPGP.js 5.x e 6.x e não afeta o OpenPGP.js 4.x.
A biblioteca OpenPGP.js fornece uma implementação JavaScript independente do protocolo OpenPGP, permitindo que você execute operações de criptografia e trabalhe com assinaturas digitais baseadas em chave pública no navegador. O projeto está sendo desenvolvido por desenvolvedores do Proton Mail e, além de organizar a criptografia de ponta a ponta de mensagens no Proton Mail, é usado em projetos como FlowCrypt, Mymail-Crypt, UDC, Encrypt.to, PGP Anywhere e Passbolt.
A vulnerabilidade afeta os procedimentos de verificação de assinaturas de texto incorporadas (openpgp.verify) e mensagens assinadas e criptografadas (penpgp.decrypt). Um invasor pode usar mensagens assinadas existentes para formar novas mensagens que, quando descompactadas por uma versão vulnerável do OpenPGP.js, extrairão conteúdo substituído diferente do conteúdo da mensagem assinada original. A vulnerabilidade não afeta assinaturas distribuídas separadamente do texto (o problema só aparece quando a assinatura é transmitida junto com o texto como um único bloco de dados).
Para criar uma mensagem falsa, um invasor só precisa ter uma mensagem com uma assinatura incorporada ou separada, bem como conhecimento dos dados originais assinados nesta mensagem. Um invasor pode modificar a mensagem para que a versão modificada da assinatura ainda seja considerada correta. Da mesma forma, mensagens criptografadas com uma assinatura podem ser modificadas para que, quando descompactadas, os dados adicionados pelo invasor sejam retornados.
Fonte: opennet.ru
