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

問題の概要:アプリケーションがAES-OCBコンテキストを、公開されているEVP_Cipher()のワンショットインターフェース経由で操作する際、アプリケーションが提供した初期化ベクトル(IV)が何の通知もなく破棄されてしまいます。影響概要:同じキーで暗号化されたすべてのメッセージは、呼び出し元が提供するIVに関わらず同じ有効なノンスを使用するため、(キー、ノンス)の再利用が発生し、機密性が失われます。同じコードパスが認証タグの計算に使用された場合、タグは平文や暗号文に依存せず、(キー、IV)ペアのみに依存するため、一つの捕捉されたメッセージから任意の暗号文の普遍的な偽造が可能になります。OpenSSLは暗号操作を行う方法として、文書化されたストリーミングインターフェース(EVP_CipherUpdate / EVP_CipherFinal_ex)と、より低レベルのワンショットEVP_Cipher()を提供しています。後者はアプリケーションでの利用を推奨しておらず、前者の使用を推奨しています。OCBプロバイダーのストリーミングハンドラは、処理前にアプリケーション提供のIVをOCBコンテキストに反映しますが、ワンショットハンドラはこれを行いません。そのため、AES-OCBコンテキストでEVP_Cipher()を呼び出すたびに、呼び出し元のIVに関係なく初期化時に設定された全ゼロのキー導出オフセット状態で動作します。もしEVP_EncryptFinal_ex()を使って認証タグを取得すると、遅延されたIV設定がそこで行われ、平文に対して蓄積されるべき実行中チェックサムがクリアされてしまいます。結果として生成されるタグは(キー、IV)の関数のみとなり、同じ(キー、IV)ペアで生成された任意の暗号文に対して検証が通ります。OpenSSLのSSL/TLS実装は影響を受けません。AES-OCBはTLS暗号スイートではなく、libsslもEVP_Cipher()を呼び出しません。文書化されたストリーミングAEAD API(EVP_CipherUpdate / EVP_CipherFinal_ex)を通じてAES-OCBを使用するアプリケーションも影響を受けません。対象はAES-OCB暗号とEVP_Cipher()のワンショットAPIを組み合わせて使用するアプリケーションのみです。FIPSモジュールのバージョン4.0、3.6、3.5、3.4、3.0にも影響はありません。AES-OCBはOpenSSL FIPSモジュールの境界外のため、これらには影響しません。

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

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

公表日 2026年6月9日0:00
登録日 2026年6月17日15:45
最終更新日 2026年6月17日15:45
CVSS3.0 : 重要
スコア 7.5
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/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-45445
概要

Issue summary: When an application drives an AES-OCB context through the
public EVP_Cipher() one-shot interface, the application-supplied
initialisation vector (IV) is silently discarded.

Impact summary: Every message encrypted under the same key uses the
same effective nonce regardless of the IV supplied by the caller,
resulting in (key, nonce) reuse and loss of confidentiality. If the
same code path is used to compute the authentication tag, the tag
depends only on the (key, IV) pair and not on the plaintext or
ciphertext, allowing universal forgery of arbitrary ciphertext from a
single captured message.

OpenSSL provides two ways to drive a cipher: the documented streaming
interface (EVP_CipherUpdate / EVP_CipherFinal_ex) and a lower-level
one-shot, EVP_Cipher(), whose documentation explicitly recommends
against use by applications in favour of EVP_CipherUpdate() and
EVP_CipherFinal_ex(). The OCB provider's streaming handler flushes
the application-supplied IV into the OCB context before processing
data; the one-shot handler did not. Every call to EVP_Cipher() on an
AES-OCB context therefore ran with the all-zero key-derived offset
state left by cipher initialisation, regardless of the caller's IV.

If EVP_EncryptFinal_ex() is subsequently used to obtain the
authentication tag, the deferred IV setup runs at that point and
clears the running checksum that should have been accumulated over the
plaintext. The resulting tag is a function of (key, IV) only and
verifies against any ciphertext produced under the same (key, IV)
pair.

The OpenSSL SSL/TLS implementation is not affected: AES-OCB is not a
TLS cipher suite, and libssl does not call EVP_Cipher() in any case.
Applications that drive AES-OCB through the documented streaming AEAD
API (EVP_CipherUpdate / EVP_CipherFinal_ex) are not affected. Only
applications that combine the AES-OCB cipher with the EVP_Cipher()
one-shot API are vulnerable.

The FIPS modules in 4.0, 3.6, 3.5, 3.4 and 3.0 are not affected by
this issue, as AES-OCB 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:-:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧