OpenSSL 1.0.2 < 1.0.2zq の複数の脆弱性

high Nessus プラグイン ID 320141

概要

リモートサービスは、複数の脆弱性の影響を受けます。

説明

リモートホストにインストールされている OpenSSL のバージョンは、1.0.2zq より前です。したがって、1.0.2zq のアドバイザリに記載されている複数の脆弱性の影響を受けます。

- 問題のサマリー: 特別に細工されたパスワードで暗号化された CMS メッセージにより、CMS 復号化中に NULL ポインターデリファレンスが発生する可能性があります。影響の要約: この NULL ポインターデリファレンスによりアプリケーションがクラッシュし、サービス拒否を引き起こす可能性があります。CMS の PasswordRecipientInfo.keyDerivationAlgorithm フィールドは、ASN.1 仕様において OPTIONAL として定義されているため、特別に細工された入力では存在しない可能性があります。パスワードベースの CMS 復号化中に、OpenSSL の CMS 実装は、このフィールドが存在するかどうかを事前に確認せずに逆参照します。パスワードベースの CMS 復号化を実行するアプリケーションにこのような CMS メッセージを送信する攻撃者は、アプリケーションのクラッシュを引き起こし、サービス拒否を発生させる可能性があります。パスワードで暗号化された CMS メッセージを処理するアプリケーションに影響が及ぶ可能性があります。4.0、3.6、3.5、3.4、3.0 の FIPS モジュールは、この問題による影響を受けません。これは、影響を受けるコードが OpenSSL FIPS モジュール境界の外部にあるためです。(CVE-2026-42766)

- 問題のサマリー: ASN1_mbstring_ncopy() で Unicode 出力の宛先バッファをサイジングする際の符号付き整数オーバーフローが、ヒープバッファオーバーフローにつながる可能性があります。影響の概要: ヒープバッファオーバーフローにより、クラッシュや攻撃者による任意コード実行、またはその他の未定義の動作が発生する可能性があります。ASN1_mbstring_copy() と ASN1_mbstring_ncopy() では、BMPSTRING (UTF-16) と UNIVERSALSTRING (UTF-32) の入力文字カウントを左シフトし、UTF8STRING の文字ごとのバイト数を合計することによって、Unicode 出力のデスティネーションサイズは符号付き整数で計算されます。入力が約 2^30 文字に達すると、計算がオーバーフローします。最悪の場合 (2^30 文字の UNIVERSALSTRING)、サイズがゼロに折り返されると、OPENSSL_malloc(1) が呼び出され、後続の文字コピーが 1 バイトの割り当てを超えて数ギガバイトを書き込みます。X.509 証明書の処理は ASN1_STRING_set_by_NID() を経由しますが、この関数の DIRSTRING_TYPE マスクは UNIVERSALSTRING を除外しており、NID ごとのサイズ制限によって入力長が制限されています。OpenSSL のネットワークプロトコルや証明書処理パスにおいて、このオーバーフローが発生することはありません。このバグを発生させるには、ASN1_mbstring_copy() や ASN1_mbstring_ncopy() を直接呼び出すか、ASN1_STRING_TABLE_add() を介してカスタム文字列タイプを登録するアプリケーションが必要であり、攻撃者が制御する半ギガバイト以上の入力データが与えられる必要があります。以上の理由により、この問題は重要度低と評価されました。4.0、3.6、3.5、3.4、3.0 の FIPS モジュールは、この問題による影響を受けません。これは、影響を受けるコードが OpenSSL FIPS モジュール境界の外部にあるためです。(CVE-2026-7383)

- 問題のサマリー: CMS パスワードベースの復号化 (RFC 3211/PWRI キーアンラップ) が攻撃者指定の CMS データを処理するとき、攻撃者が選択したストリームモード KEK 暗号が kek_unwrap_key() でヒープ領域外読み取りを発生させる可能性があります。影響のサマリー: 入力バッファがメモリページの境界で終了し、次のページがマッピング解除されている場合、ヒープバッファのオーバーリードによりクラッシュが引き起こされ、アプリケーションのサービス拒否につながる可能性があります。オーバーリードされたバイトが攻撃者に漏洩されることはないため、情報漏洩はありません。キーアンラップ関数は、RFC で指定されているようにチェックバイトテストを実行し、メッセージからのラップされたキーの長さに基づくヒープ割り当てから 7 バイトを読み取ります。ラッピング暗号のブロック長に基づく最小長チェックがあります。ただし、暗号は攻撃者の PWRI keyEncryptionAlgorithm で運ばれる OID から選択され、暗号がブロック暗号である必要はありません。攻撃者がストリームモード暗号を選択すると、ガードは無効になり、ラップ解除されたキーを含む割り当てられたバッファが小さすぎて RFC で指定されたチェックバイトに収まらない可能性があり、バッファオーバーリードが発生する可能性があります。信頼できない CMS データに対して、CMS_decrypt() または CMS_decrypt_set1_password() (同等の openssl cms
-decrypt -pwri_password ...) を呼び出すアプリケーションは、この問題に対して脆弱です。パスワードの知識は必要ありません。オーバーリードは、認証が成功する前に、ラップ解除の試行中に発生します。オーバーリードは数バイトに制限され、出力に書き込まれないため、情報漏洩は発生しません。
クラッシュを発生させるには、マッピングされていないメモリの境界に対する割り当てが必要ですが、通常のアロケーターでは起こらないことになります。FIPS モジュールは、この問題の影響を受けません。(CVE-2026-9076)

- 問題のサマリー: 特別に細工された PKCS#7 または S/MIME 署名付きメッセージにより、PKCS#7 署名認証中に use-after-free が発生する可能性があります。影響のサマリー: メモリ解放後使用 (use-after-free) により、プロセスのクラッシュ、ヒープの破損、またはリモートでのコード実行が引き起こされる可能性があります。PKCS#7 または S/MIME 署名付きメッセージを処理するときに、SignedData digestAlgorithms フィールドが空の ASN.1 SET として存在すると、OpenSSL が PKCS7_verify() 中に呼び出し元所有の BIO を不適切に解放する可能性があります。呼び出し元のアプリケーションが BIO をその後使用すると、メモリ解放後使用 (Use After Free) 状態になります。一般的なケースでは、これはアプリケーションが最初に PKCS7_verify() に渡された BIO で BIO_free() を後に呼び出すときに発生します。アロケーターの動作やアプリケーション固有の BIO 使用パターンによっては、これによりクラッシュやその他のメモリ破損が発生する可能性があります。一部のアプリケーションコンテキストでは、これがリモートコードの実行のために悪用される可能性があります。OpenSSL PKCS#7 API を使用して PKCS#7 または S/MIME 署名のあるメッセージを処理するアプリケーションが影響を受ける可能性があります。この処理に CMS API を使用するアプリケーションは影響を受けません。4.0、3.6、3.5、3.4、3.0 の FIPS モジュールは、この問題による影響を受けません。これは、影響を受けるコードが OpenSSL FIPS モジュール境界の外部にあるためです。(CVE-2026-45447)

- 問題のサマリー: 細工された DER エンコードの ASN.1 構造体を、コンテンツの長さが 2 GB を超えるプリミティブ要素で解析すると、64 ビット Unix および Unix ライクなプラットフォームでヒープバッファのオーバーリードが発生する可能性があります。
影響のサマリー: ヒープバッファのオーバーリードにより、アプリケーションがクラッシュ (サービス拒否) したり、デコードされた ASN.1 オブジェクトにおいて入力バッファの終端を超えたメモリ内容を読み込んでしまう可能性があります。より一般的には、そのような ASN.1 要素は切り詰められます。OpenSSL の ASN.1 デコーダーにおける整数の切り詰めにより、ASN.1 プリミティブ要素のコンテンツ長が 2 GB を超えた場合に、そのコンテンツ長が不適切に処理されます。最悪の場合、切り詰められた長さはバイナリコンテンツ内の終端ゼロバイトを探索するためのリクエストとして扱われ、その結果、OpenSSL が割り当て済みバッファの終端より手前、またはそれを超えて読み取る可能性があります。攻撃者が指定したデータを d2i_X509() や d2i_PKCS7()、またはその他の d2i_* デコード関数に渡すアプリケーションは影響を受けます。
OpenSSL のコマンドラインツール自体は脆弱ではありません。これは、BIO レイヤーを通じて読み取られたデータが、影響を受けるコードに到達する前に検査されるためです。この問題の影響を受けるのは 64 ビット Unix および Unix ライクなプラットフォームのみです。32 ビットプラットフォームおよび 64 ビット Windows は影響を受けません。 4.0、3.6、3.5、3.4、3.0 の FIPS モジュールは、この問題による影響を受けません。これは、影響を受けるコードが OpenSSL FIPS モジュール境界の外部にあるためです。(CVE-2026-34180)

Nessus はこれらの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。

ソリューション

OpenSSL バージョン 1.0.2zq 以降にアップグレードしてください。

参考資料

https://openssl-library.org/news/secadv/20260609.txt

https://www.cve.org/CVERecord?id=CVE-2026-34180

https://www.cve.org/CVERecord?id=CVE-2026-42766

https://www.cve.org/CVERecord?id=CVE-2026-45447

https://www.cve.org/CVERecord?id=CVE-2026-7383

https://www.cve.org/CVERecord?id=CVE-2026-9076

http://www.nessus.org/u?eac4598c

プラグインの詳細

深刻度: High

ID: 320141

ファイル名: openssl_1_0_2zq.nasl

バージョン: 1.4

タイプ: Combined

エージェント: windows, macosx, unix

ファミリー: Web Servers

公開日: 2026/6/9

更新日: 2026/6/12

設定: 徹底したチェックを有効にする (optional)

サポートされているセンサー: Nessus Agent, Continuous Assessment, Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: Medium

基本値: 4.3

現状値: 3.2

ベクトル: CVSS2#AV:N/AC:M/Au:N/C:N/I:N/A:P

CVSS スコアのソース: CVE-2026-42766

CVSS v3

リスクファクター: High

基本値: 8.8

現状値: 7.7

ベクトル: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

現状ベクトル: CVSS:3.0/E:U/RL:O/RC:C

CVSS スコアのソース: CVE-2026-45447

脆弱性情報

CPE: cpe:/a:openssl:openssl

必要な KB アイテム: installed_sw/OpenSSL

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2026/6/9

脆弱性公開日: 2026/6/9

参照情報

CVE: CVE-2026-34180, CVE-2026-42766, CVE-2026-45447, CVE-2026-7383, CVE-2026-9076

IAVA: 2026-A-0589