製品・ソフトウェアに関する情報
OpenSSL ProjectのOpenSSLにおける暗号化処理の不備に関する脆弱性
Title OpenSSL ProjectのOpenSSLにおける暗号化処理の不備に関する脆弱性
Summary

問題の概要:アプリケーションが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モジュールの境界外のため、これらには影響しません。

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

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

Publication Date June 9, 2026, midnight
Registration Date June 17, 2026, 3:45 p.m.
Last Update June 17, 2026, 3:45 p.m.
CVSS3.0 : 重要
Score 7.5
Vector CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Affected System
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 (共通脆弱性タイプ一覧)
ベンダー情報
その他
Change Log
No Changed Details Date of change
1 [2026年06月17日]
  掲載
June 17, 2026, 3:45 p.m.

NVD Vulnerability Information
CVE-2026-45445
Summary

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.

Publication Date June 10, 2026, 2:17 a.m.
Registration Date June 10, 2026, 4:18 a.m.
Last Update June 16, 2026, 11:57 a.m.
Affected software configurations
Configuration1 or higher or less more than less than
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:-:*:*:*:*:*:*
Related information, measures and tools
Common Vulnerabilities List