OpenSSL ProjectのOpenSSLにおける隠れチャネルに関する脆弱性
タイトル OpenSSL ProjectのOpenSSLにおける隠れチャネルに関する脆弱性
概要

問題の概要: CMS_decryptおよびPKCS7_decrypt関数は、攻撃者がCMSまたはS/MIMEメッセージを提供し、エラーコードや復号結果を観察できる場合に、Bleichenbacher様の攻撃に対して脆弱です。インパクトの概要: Bleichenbacher様の攻撃により、攻撃者は被害者の脆弱なアプリケーションを利用して、被害者の秘密RSA鍵でメッセージを復号または署名することが可能になります。この攻撃は2つのバリエーションで発生します。1. 受信者証明書を提供せずに復号API(CMS_decrypt(), PKCS7_decrypt())を使用する場合。この場合OpenSSLは最初の成功で停止せず、すべてのKeyTransRecipientInfo(KTRI)を順に処理します。攻撃者が2つのKTRIエントリを持つメッセージを作成した場合—1つ目は被害者の公開鍵で実際のCEKをラップし、2つ目は任意のプローブ暗号文—アプリケーションのエラーコードが利用可能であれば第2のKTRIを反復し、PKCS#1 v1.5の有効なパディングを取得できる可能性があります。これがBleichenbacherオラクル(Bleichenbacher, CRYPTO '98)であり、適応型選択暗号文サイドチャネル攻撃で、攻撃者は任意のRSA暗号文を復号または任意のPKCS#1 v1.5署名を偽造できます。2. 復号APIに受信者証明書を提供し、受信者が見つからない場合、ランダムな鍵が代入されます。攻撃者がメッセージを作成し、エラーコードと復号結果の両方を比較できれば、Bleichenbacherオラクルを構築可能です。これらのシナリオで攻撃機会をリモート攻撃者に提供するアプリケーションは知られておらず、そのようなアプリケーションの存在は非常に低いと見なされているため、本CVEは低重大度と評価されています。これらの攻撃を回避するために、RSA PKCS#1 v1.5鍵輸送を使用する場合、呼び出されるEVP_PKEY_decrypt()はdraft-irtf-cfrg-rsa-guidanceで記述された暗黙の拒否機構を使用します。以前のOpenSSLリリースでは、暗黙の拒否は明示的に無効化されていました。暗黙の拒否機構は常に平文である対称鍵を返します。その結果は暗号文と秘密鍵に対して決定的です。復号結果の長さは、コンテンツ暗号化に使用された対称暗号の鍵長と一致することがあります。証明書が提供されない場合、有効に見える鍵を生成する最後のRecipientInfoが使用されるため、復号時にゴミのコンテンツが得られることがあります。適切な対処方法として、復号に特定のRecipientInfoを識別するために受信者証明書を提供する必要があります。OpenSSL FIPSモジュールの4.0、3.6、3.5、および3.4はこの問題の影響を受けません。これはCMSおよびS/MIME処理がOpenSSL FIPSモジュールの境界外で行われるためです。

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

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

公表日 2026年6月9日0:00
登録日 2026年6月17日15:36
最終更新日 2026年6月17日15:36
CVSS3.0 : 低
スコア 3.7
ベクター CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
影響を受けるシステム
OpenSSL Project
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:36

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

Issue summary: The CMS_decrypt and PKCS7_decrypt functions are vulnerable to
Bleichenbacher-style attack when an attacker is able to provide the CMS or
S/MIME messages and observe the error code and/or decryption output.

Impact summary: The Bleichenbacher-style attack allows an attacker to use the
victim's vulnerable application as a way to decrypt or sign messages with the
victim's private RSA key.

The attack is possible in 2 variants.

1. The decryption API (CMS_decrypt(), PKCS7_decrypt()) is used without
providing the recipient certificate. In this case OpenSSL iterates over every
KeyTransRecipientInfo (KTRI) without stopping at the first success.

An attacker who authors a message with two KTRI entries — the first one
wrapping a real CEK under the victim's public key, the second with an
arbitrary probe ciphertext — obtains opportunity to iterate the 2nd KTRI to
get a valid PKCS#1 v1.5 padding if the error code of the application is
available.

That is a Bleichenbacher oracle (Bleichenbacher, CRYPTO '98): an
adaptive-chosen-ciphertext side channel from which the attacker decrypts any
RSA ciphertext to the victim's key or forges any PKCS#1 v1.5 signature under
it.

2. When the decryption API (CMS_decrypt(), PKCS7_decrypt()) is provided with
the recipient certificate, and the recipient is not found, a random
key is substituted.

An attacker who authors a message and is able to compare both error code and
the result of the decryption, can mount a Bleichenbacher oracle.

We are not aware of any applications that provide a remote attacker
an opportunity to mount an attack described in these scenarios. We consider
the existence of such application very unlikely, and for this reason this
CVE has been evaluated as Low severity.

To avoid these attacks, when RSA PKCS#1 v1.5 Key Transport is in use, the
invoked EVP_PKEY_decrypt() will use the implicit rejection mechanism described
in draft-irtf-cfrg-rsa-guidance. In previous OpenSSL releases the implicit
rejection was explicitly disabled.

The implicit rejection mechanism always returns a plaintext value,
the symmetric key. This result is deterministic for the ciphertext and the
private key. The length of the decryption result can happen to match the
length of the key of the symmetric cipher that was used for the content
encryption. When a certificate is not provided, the last RecipientInfo
producing a key that looks valid will be used. It may cause getting garbage
content on decryption. As a proper way to deal with this a recipient
certificate has to be provided to identify the particular RecipientInfo for
decryption.

The FIPS modules in 4.0, 3.6, 3.5, and 3.4 are not affected by this issue, as
CMS and S/MIME processing happens outside the OpenSSL FIPS module boundary.

公表日 2026年6月10日2:17
登録日 2026年6月10日4:17
最終更新日 2026年6月16日11:58
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
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:-:*:*:*:*:*:*
関連情報、対策とツール
共通脆弱性一覧