OpenSSL ProjectのOpenSSLにおける暗号化処理の不備に関する脆弱性
タイトル OpenSSL ProjectのOpenSSLにおける暗号化処理の不備に関する脆弱性
概要

問題の概要:AES-SIV(RFC 5297)およびAES-GCM-SIV(RFC 8452)の実装において、空の暗号文に対するAAD(追加認証データ)の認証処理が誤っており、その結果、このようなメッセージを偽造可能になっています。影響の概要:攻撃者はこれらの暗号方式を用いる被害者のアプリケーションに対して、任意のAADを持つ空のメッセージを偽造できます。AES-SIV(RFC 5297)およびAES-GCM-SIV(RFC 8452)はノンス誤用耐性を持つAEADモードであり、鍵、ノンス、任意のAAD(認証されるが暗号化されないバイト列)、および平文を受け取り、暗号文と16バイトのタグを生成します。復号時にはタグが正しく検証された場合にのみ`EVP_DecryptFinal_ex()`が成功を返すと文書化されています。OpenSSLのこれらの暗号のプロバイダー実装では、期待されるタグは非空のデータで復号関数が呼ばれた場合にのみ計算されます。もし呼び出し側がAADを供給し、その後、暗号文の更新を呼ばずに`EVP_DecryptFinal_ex()`を呼び出した場合(受信した暗号文長がゼロの時に発生しうる)、タグは再計算されずゼロで初期化されたままになります。AES-GCM-SIVを使用する場合、攻撃者は任意のAAD、空の暗号文、および全ゼロタグを送信することで、知らない鍵の下でも単発で認証を通過させることが可能です。AES-SIVの場合、攻撃を行うためにはアプリケーションが鍵のリセットを行わずに復号コンテキストを再利用する必要があります。AES-SIVはOpenSSL 3.0から、AES-GCM-SIVはOpenSSL 3.2から実装されています。OpenSSL自体で実装されているプロトコル(TLS/CMS/PKCS7/HPKE/QUIC)はAES-GCM-SIVやAES-SIVをサポートしていません。攻撃を成立させるためにはアプリケーション側が独自のプロトコルを実装しEVPインターフェースを利用している必要があり、また空の暗号文のメッセージが来た際に暗号文の更新処理をスキップしなければなりません。OpenSSL FIPSモジュール(バージョン4.0、3.6、3.5、3.4、3.0)はこの問題の影響を受けません。これらのアルゴリズムはFIPSで承認されておらず、影響を受けるコードはFIPSモジュールの境界外に存在するためです。

想定される影響 ・当該ソフトウェアが扱う情報の一部が外部に漏れる可能性があります。 ・当該ソフトウェアが扱う情報の一部が書き換えられる可能性があります。 ・当該ソフトウェアは停止しません。 
対策

ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年6月9日0:00
登録日 2026年6月17日15:45
最終更新日 2026年6月17日15:45
CVSS3.0 : 警告
スコア 4.8
ベクター CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
影響を受けるシステム
OpenSSL Project
OpenSSL 3.0.0 以上 3.0.21 未満
OpenSSL 3.4.0 以上 3.4.6 未満
OpenSSL 3.5.0 以上 3.5.7 未満
OpenSSL 3.6.0 以上 3.6.3 未満
OpenSSL 4.0.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
その他
変更履歴
No 変更内容 変更日
1 [2026年06月17日]
  掲載
2026年6月17日15:45

NVD脆弱性情報
CVE-2026-45446
概要

Issue summary: The implementations of AES-SIV (RFC 5297) and AES-GCM-SIV
(RFC 8452) mishandle the authentication of AAD (Additional Authenticated
Data) with an empty ciphertext allowing a forgery of such messages.

Impact summary: An attacker can forge empty messages with arbitrary AAD
to the victim's application using these ciphers.

AES-SIV (RFC 5297) and AES-GCM-SIV (RFC 8452) are nonce-misuse-resistant AEAD
modes: they accept a key, nonce, optional AAD (bytes that are authenticated
but not encrypted), and plaintext, and produces ciphertext plus a 16-byte
tag. On decrypt, `EVP_DecryptFinal_ex()` is documented to return success only
if the tag is verified succesfully.

In OpenSSL's provider implementation of these ciphers, the expected tag is
computed only when decryption function is invoked with non-empty data.
If the caller supplies AAD and then calls `EVP_DecryptFinal_ex()` without
invocation of the ciphertext update, which can happen when the received
ciphertext length is zero, the tag is never recalculated and still holds its
all-zeros value.

When AES-GCM-SIV is used, an attacker who sends arbitrary AAD, empty
ciphertext, and all-zeros tag passes authentication under any key they do not
know, single-shot. When AES-SIV is used, for mounting the attack it's
necessary for the application to reuse the decryption context without
resetting the key.

AES-SIV is implemented since OpenSSL 3.0. AES-GCM-SIV is implemented since
OpenSSL 3.2.

No protocols implemented in OpenSSL itself (TLS/CMS/PKCS7/HPKE/QUIC) support
either AES-GCM-SIV or AES-SIV. To mount an attack, the applications must
implement their own protocol and use the EVP interface. Also they must skip the
ciphertext update when a message with an empty ciphertext arrives.

The FIPS modules in 4.0, 3.6, 3.5, 3.4, and 3.0 are not affected by this
issue, as these algorithms are not FIPS approved and the affected code is
outside the OpenSSL FIPS module boundary.

公表日 2026年6月10日2:17
登録日 2026年6月10日4:18
最終更新日 2026年6月16日11:57
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.0.0 3.0.21
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.4.0 3.4.6
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.5.0 3.5.7
cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* 3.6.0 3.6.3
cpe:2.3:a:openssl:openssl:4.0.0:-:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧