OpenPGP.js ライブラリの脆弱性により、メッセージ検証をバイパスできる

OpenPGP.js ライブラリに脆弱性 (CVE-2025-47934) が見つかりました。これにより、攻撃者は受信者が検証済みと認識する改変されたメッセージを送信できるようになります (openpgp.verify および openpgp.decrypt 関数は、コンテンツが置き換えられ、署名が作成されたデータと異なるにもかかわらず、デジタル署名の検証が成功したという表示を返します)。この脆弱性は OpenPGP.js 5.11.3 および 6.1.1 リリースで修正されました。この問題は OpenPGP.js 5.x および 6.x ブランチにのみ影響し、OpenPGP.js 4.x には影響しません。

OpenPGP.js ライブラリは、OpenPGP プロトコルの自己完結型 JavaScript 実装を提供し、ブラウザーで暗号化操作を実行したり、公開鍵ベースのデジタル署名を操作したりできるようになります。このプロジェクトは Proton Mail 開発者によって開発されており、Proton Mail でのメッセージのエンドツーエンドの暗号化を組織するほか、FlowCrypt、Mymail-Crypt、UDC、Encrypt.to、PGP Anywhere、Passbolt などのプロジェクトでも使用されます。

この脆弱性は、埋め込まれたテキスト署名 (openpgp.verify) および署名および暗号化されたメッセージ (penpgp.decrypt) の検証手順に影響します。攻撃者は既存の署名済みメッセージを使用して新しいメッセージを作成し、その新しいメッセージを OpenPGP.js の脆弱なバージョンで解凍すると、元の署名済みメッセージの内容とは異なる置換コンテンツが抽出されます。この脆弱性は、テキストとは別に配布される署名には影響しません (署名が単一のデータ ブロックとしてテキストと一緒に送信される場合にのみ問題が発生します)。

偽のメッセージを作成するには、攻撃者は、埋め込み署名または個別の署名が付いた 1 つのメッセージと、このメッセージに署名された元のデータに関する知識のみが必要です。攻撃者はメッセージを変更して、変更された署名のバージョンが依然として正しいとみなされるようにすることができます。同様に、署名付きの暗号化メッセージは、解凍時に攻撃者によって追加されたデータが返されるように変更される可能性があります。

出所: オープンネット.ru

コメントを追加します