Tenable Security Center の複数の脆弱性 (TNS-2024-21)

critical Nessus プラグイン ID 213289

概要

リモートシステムにインストールされている Security Center のインスタンスは、複数の脆弱性の影響を受けます。

説明

自己報告されたバージョンによると、リモートホストで実行されている Tenable Security Center はバージョン 6.4.5 です。したがって、TNS-2024-21 のアドバイザリに記載されている複数の脆弱性の影響を受けます。

- 8.1.31 より前の 8.1.*、8.2.26 より前の 8.2.*、8.3.14 より前の 8.3.* の PHP バージョンでは、32 ビットシステムの ldap_escape() 関数への制御されない長い文字列入力が、整数オーバーフローを引き起こし、領域外書き込みを引き起こす可能性があります。(CVE-2024-11236)

- 8.1.31 より前の 8.1.*、8.2.26 より前の 8.2.*、8.3.14 より前の 8.3.* の PHP バージョンでは、convert.quoted-printable-decode フィルターのエラーにより、特定のデータで 1 バイトのバッファオーバーリードが発生する可能性があります。このため、特定の状況でクラッシュが発生したり、他のメモリ領域の内容が公開されたりする可能性があります。(CVE-2024-11233)

- 問題の要約: 過度に長い DSA キーまたはパラメーターのチェックは、非常に遅くなる可能性があります。影響の概要:
EVP_PKEY_param_check() 関数または EVP_PKEY_public_check() 関数を使用して DSA 公開キーまたは DSA パラメーターをチェックするアプリケーションでは、長時間の遅延が発生する可能性があります。チェックされているキーまたはパラメーターが信頼できないソースから取得された場合、サービス拒否が引き起こされる可能性があります。EVP_PKEY_param_check() または EVP_PKEY_public_check() 関数は、DSA パラメーターのさまざまなチェックを実行します。係数 (「p」パラメーター) が大きすぎると、これらの計算の一部に時間がかかります。非常に大きなモジュラスを使用しようとすると時間がかかり、OpenSSL では署名検証に長さが 10,000 ビットを超えるようなモジュラスの公開キーを使用することはできません。ただし、キーとパラメーターのチェック関数は、チェックを実行するときにモジュラスサイズを制限しません。EVP_PKEY_param_check() または EVP_PKEY_public_check() を呼び出し、信頼できないソースから取得したキーまたはパラメーターを提供するアプリケーションは、サービス拒否攻撃に対して脆弱になる可能性があります。OpenSSL 自体は信頼できない DSA キーに対してこれらの関数を呼び出さないため、直接これらの関数を呼び出すアプリケーションのみが脆弱性の影響を受ける可能性があります。OpenSSL の pkey および pkeyparam コマンドラインアプリケーションも、「-check」オプションを使用する際に脆弱です。OpenSSL SSL/TLS の実装は、この問題の影響を受けません。OpenSSL 3.0 および 3.1 FIPS プロバイダーは、この問題の影響を受けます。(CVE-2024-4603)

- 問題の要約: OpenSSL API 関数 SSL_free_buffers を呼び出すと、一部の状況で、以前は解放されていたメモリがアクセスされる可能性があります 影響の要約: メモリ解放後使用 (Use After Free) により、有効なデータの破損、クラッシュ、または任意のコードの実行などの幅広い結果が生じる可能性があります。ただし、この問題の影響を受けるのは、SSL_free_buffers 関数を直接呼び出すアプリケーションのみです。この関数を呼び出さないアプリケーションは脆弱ではありません。弊社の調査によると、この関数がアプリケーションで使用されることはほとんどありません。SSL_free_buffers 関数は、ネットワークからの着信レコードを処理する際に使用される内部 OpenSSL バッファを解放するために使用されます。バッファが現在使用されていない場合にのみ、呼び出しが成功することが期待されます。しかし、バッファが使用中であるにも関わらず解放される 2 つのシナリオが特定されています。最初のシナリオは、レコードヘッダーがネットワークから受信され、OpenSSL によって処理されましたが、レコード本体全体がまだ到着していない場合です。この場合、レコードの一部が処理されただけでバッファが使用中であっても、SSL_free_buffers の呼び出しは成功します。2 番目のシナリオは、アプリケーションデータを含むレコード全体が OpenSSL によって受信および処理されたものの、アプリケーションがこのデータの一部しか読み取っていない場合に発生します。この場合も、バッファが使用中であっても、SSL_free_buffers の呼び出しは成功します。これらのシナリオは通常の操作中に偶発的に発生する可能性がありますが、悪意のある攻撃者がこれが発生する状況を作り出そうとする可能性があります。弊社は、この問題が積極的に悪用されていることを認識していません。3.3、3.2、3.1、および 3.0 の FIPS モジュールは、この問題の影響を受けません。(CVE-2024-4741)

- PHP バージョン 8.1.29 より前の 8.1.*、8.2.20 より前の 8.2.*、8.3.8 より前の 8.3.* では、コードロジックエラーにより、特定のタイプの URL に対する URL (FILTER_VALIDATE_URL) を検証する際の filter_var などのフィルタリング機能は、無効なユーザー情報 (URL のユーザー名 + パスワードの部分) を有効なユーザー情報として処理する可能性があります。これにより、ダウンストリームコードが無効な URL を有効なものとして受け入れ、不適切に解析する可能性があります。(CVE-2024-5458)

- 問題のサマリー: 空のサポート対象クライアントプロトコルバッファで 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 の新しいリリースは行われていません。この修正は、次のリリースが利用可能になり次第、含められる予定です。(CVE-2024-5535)

- PHP バージョン 8.1.29 より前の 8.1.*、8.2.20 より前の 8.2.*、8.3.8 より前の 8.3.* では、コマンド名に末尾のスペースがある場合、CVE-2024-1874 に対する修正は機能しません。元の問題: 配列構文で proc_open() コマンドを使用する際に、実行されたコマンドの引数が悪意のあるユーザーによって制御されている場合、ユーザーは引数を指定して、Windows シェルで任意のコマンドを実行する引数を提供する可能性があります。
(CVE-2024-5585)

- 問題の要約: 証明書名のチェックを実行するアプリケーション (サーバー証明書をチェックする TLS クライアントなど) が無効なメモリ アドレスを読み取ろうとし、アプリケーションプロセスが異常終了する可能性があります。影響の要約: アプリケーションの異常終了により、サービス拒否が引き起こされる可能性があります。証明書名のチェックを実行するアプリケーション (サーバー証明書をチェックする TLS クライアントなど) は、予想される名前を X.509 証明書の `otherName` サブジェクト代替名と比較するときに、無効なメモリアドレスを読み取ろうとする可能性があります。このため、アプリケーションプログラムを終了する例外が発生する可能性があります。注意: 基本的な証明書チェーンの検証 (署名、日付など) は影響を受けません。サービス拒否は、アプリケーションが想定される DNS 名、メールアドレス、または IP アドレスも指定する場合にのみ発生する可能性があります。TLS サーバーがクライアント証明書を要求することはほとんどなく、要求する場合でも、通常は参照識別子 (expected identity) に対する名前チェックは実行せず、証明書チェーンをチェックした後に提示された ID を抽出します。そのため通常、TLS サーバーは影響を受けず、問題の深刻度は [重要度中] です。3.3、3.2、3.1、および 3.0 の FIPS モジュールは、この問題の影響を受けません。
(CVE-2024-6119)

- Security Center は、サードパーティのソフトウェアを利用して、基盤となる機能の提供を支援します。いくつかのサードパーティコンポーネント (OpenSSL、PHP) に複数の脆弱性が含まれていることが判明し、プロバイダーにより更新バージョンが利用可能になっています。警戒するため、ベストプラクティスに従って、Tenable はこれらのコンポーネントをアップグレードし、この問題の潜在的な影響に対処することにしました。Security Center パッチ SC-202412.1 は、特定された脆弱性に対処するために、OpenSSL をバージョン 3.0.15 に、PHP をバージョン 8.2.26 に更新します。
これらの問題に対処するために、Security Center パッチ SC-202412.1 をリリースしました。インストールファイルは、次の Tenable Downloads Portal から取得できます。https://www.tenable.com/downloads/security-center(CVE-2024-8932)

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

ソリューション

パッチ SC-202412.1 を適用してください

参考資料

http://www.nessus.org/u?94420b11

https://www.tenable.com/security/TNS-2024-21

プラグインの詳細

深刻度: Critical

ID: 213289

ファイル名: securitycenter_6_4_5_tns_2024_21.nasl

バージョン: 1.1

タイプ: combined

エージェント: unix

ファミリー: Misc.

公開日: 2024/12/20

更新日: 2024/12/20

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

Vendor

Vendor Severity: Critical

CVSS v2

リスクファクター: Critical

基本値: 10

現状値: 7.8

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

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

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 8.8

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

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

脆弱性情報

CPE: cpe:/a:tenable:security_center

エクスプロイトが利用可能: true

エクスプロイトの容易さ: Exploits are available

パッチ公開日: 2024/12/20

脆弱性公開日: 2024/5/16

参照情報

CVE: CVE-2024-11233, CVE-2024-11236, CVE-2024-4603, CVE-2024-4741, CVE-2024-5458, CVE-2024-5535, CVE-2024-5585, CVE-2024-6119, CVE-2024-8932