OpenSSL 3.2.0 < 3.2.3 の脆弱性

critical Nessus プラグイン ID 201081

概要

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

説明

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

- 問題のサマリー: 空のサポート対象クライアントプロトコルバッファで OpenSSL API 関数 SSL_select_next_proto を呼び出すと、クラッシュが発生したり、メモリコンテンツがピアに送信されたりする可能性があります。影響の概要: バッファオーバーリードは、予期しないアプリケーション動作やクラッシュなど、さまざまな潜在的な結果を引き起こす可能性があります。
特にこの問題により、最大 255 バイトの任意のプライベートデータがメモリからピアに送信され、機密性が失われる可能性があります。ただし、この問題の影響を受けるのは、サポートされているクライアントプロトコルの長さが 0 のリストで SSL_select_next_proto 関数を直接呼び出すアプリケーションのみです。これは通常、有効なシナリオではなく、攻撃者の管理下にありませんが、呼び出し元のアプリケーションの設定またはプログラミングのエラーの場合に偶然発生する可能性があります。OpenSSL API 関数 SSL_select_next_proto は通常、ALPN (Application Layer Protocol Negotiation) または NPN (Next Protocol Negotiation) をサポートする TLS アプリケーションによって使用されます。NPN は古く、標準化されておらず、廃止されて ALPN が使用されるようになりました。ALPN は NPN よりもはるかに広範囲に展開されていると考えられます。SSL_select_next_proto 関数は、サーバーからプロトコルのリストを受け取り、クライアントからプロトコルのリストを受け取り、サーバーのリストにあるプロトコルでクライアントのリストにもある最初のものを返します。2 つのリストに重複がない場合は、クライアントリストの最初の項目を返します。いずれの場合も、2 つのリスト間に重複が検出されたかどうかが通知されます。SSL_select_next_proto が長さ 0 のクライアントリストで呼び出された場合、この状態に気付くことができず、クライアントリストポインターの直後のメモリを返します (また、リストに重複がないとも報告されます)。この関数は通常、ALPN のサーバー側アプリケーションのコールバックまたは NPN のクライアント側アプリケーションのコールバックから呼び出されます。ALPN の場合、クライアントが提供するプロトコルのリストは、libssl によって長さが 0 にならないことが保証されます。サーバープロトコルのリストはアプリケーションから取得され、通常は長さが 0 になることは想定されていません。この場合、SSL_select_next_proto 関数が想定通りに (client/client_len パラメーターでクライアントが渡して提供したリストで) 呼び出されていれば、アプリケーションはこの問題に対して脆弱ではありません。アプリケーションが長さ 0 のサーバーリストで誤って設定され、誤ってその長さ 0 のサーバーリストを client/client_len パラメーターで渡しており、さらに重複がないときの応答を適切に処理できない場合 (通常、ALPN ではハンドシェイクエラーが発生します)、この問題に対して脆弱になります。NPN の場合、このプロトコルでは、重複がない場合はクライアントが状況に応じてプロトコルを選択することを許しています。OpenSSL は、これをサポートするために、重複がない場合に最初のクライアントプロトコルを返します。クライアントプロトコルのリストはアプリケーションから取得され、通常は長さが 0 になることは想定されていません。ただし、SSL_select_next_proto 関数が client_len を 0 にして誤って呼び出された場合は、代わりに無効なメモリポインターが返されます。アプリケーションがこの出力を便宜的プロトコルとして使用する場合、機密性の損失が発生します。アプリケーションが ALPN の代わりに NPN を使用している場合に脆弱性が生じる可能性が最も高いため、この問題の深刻度は「低」と評価されていますが、NPN はあまり広く使用されていません。またこれが問題になるには、アプリケーションの設定またはプログラミングのエラーも必要です。最後に、この問題は通常、攻撃者の管理下にないため、アクティブな悪用はほとんどありません。3.3、3.2、3.1、および 3.0 の FIPS モジュールは、この問題の影響を受けません。この問題の深刻度は低いため、現時点では OpenSSL の新しいリリースは行われていません。この修正は、次のリリースが利用可能になり次第、含められる予定です。Joseph Birr-Pixton 氏により発見されました。David Benjamin 氏 (Google) に感謝の意を表します。Matt Caswell 氏が開発した修正。OpenSSL 1.1.1za (プレミアムサポート) で修正されました (1.1.1 以降が影響を受けます)。(CVE-2024-5535)

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

ソリューション

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

参考資料

http://www.nessus.org/u?3482f2f1

https://www.cve.org/CVERecord?id=CVE-2024-5535

プラグインの詳細

深刻度: Critical

ID: 201081

ファイル名: openssl_3_2_3.nasl

バージョン: 1.3

タイプ: combined

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

ファミリー: Web Servers

公開日: 2024/6/27

更新日: 2024/10/7

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

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.0

CVSS v2

リスクファクター: Medium

基本値: 4.3

現状値: 3.2

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

CVSS スコアのソース: CVE-2024-5535

CVSS v3

リスクファクター: Critical

基本値: 9.1

現状値: 7.9

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

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

脆弱性情報

CPE: cpe:/a:openssl:openssl

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

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

パッチ公開日: 2024/6/26

脆弱性公開日: 2024/6/26

参照情報

CVE: CVE-2024-5535