OpenSSL 3.0.0< 3.0.8複数の脆弱性

high Nessus プラグイン ID 168829

概要

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

説明

リモートホストにインストールされている OpenSSL は、3.0.8 より前のバージョンです。したがって、サービス拒否 (DoS) の脆弱性の影響を受けます。X.509 証明書に無効な形式のポリシー制約が含まれ、ポリシー処理が有効な場合、書き込みロックが再帰的に 2 回取得されます。一部のオペレーティングシステム (最も広範: Windows) では、これにより、影響を受けるプロセスがハングしたときにサービス拒否が発生します。一般に公開されているサーバーでポリシー処理を有効にすることは、一般的なセットアップとは見なされません。-policy 引数をコマンドラインユーティリティに渡すか、X509_VERIFY_PARAM_add0_policy() または X509_VERIFY_PARAM_set1_policies() 関数を呼び出すことで、ポリシー処理が有効になります。

- X.509 GeneralName 内の X.400 アドレス処理に関連する型の取り違えの脆弱性があります。
X.400 アドレスは ASN1_STRING として解析されていましたが、GENERAL_NAME のパブリック構造体の定義で x400Address フィールドのタイプが ASN1_TYPE として不適切に指定されていました。このフィールドは、その後、OpenSSL 関数 GENERAL_NAME_cmp によって、ASN1_STRING ではなく ASN1_TYPE として解釈されます。CRL チェックが有効な場合 (アプリケーションが X509_V_FLAG_CRL_CHECK フラグを設定するなど)、この脆弱性により、攻撃者が任意のポインターを memcmp 呼び出しに渡し、メモリの内容を読み取ったり、サービス拒否を引き起こしたりする可能性があります。ほとんどの場合、攻撃者は証明書チェーンと CRL の両方を提供する必要があります。どちらも有効な署名を必要としません。攻撃者がこれらの入力の 1 つのみをコントロールする場合、他の入力には CRL 配布ポイントとして X.400 アドレスがすでに含められている必要がありますが、これはよくあることではありません。このため、この脆弱性の影響を受ける可能性が最も高いのは、ネットワークを介して CRL を取得するための独自の機能を実装しているアプリケーションのみです。(CVE-2023-0286)

- X.509 証明書に無効な形式のポリシー制約が含まれ、ポリシー処理が有効な場合、書き込みロックが再帰的に 2 回取得されます。一部のオペレーティングシステム (最も広範: Windows) では、これにより、影響を受けるプロセスがハングしたときにサービス拒否が発生します。一般に公開されているサーバーでポリシー処理を有効にすることは、一般的なセットアップとは見なされません。ポリシー処理は

「-policy」引数をコマンドラインユーティリティに渡すか、「X509_VERIFY_PARAM_set1_policies()」関数を呼び出すことによって有効化されます。更新 (2023 年 3 月 31 日): ポリシー処理の有効化の説明が、CVE-2023-0466 に基づいて修正されました。(CVE-2022-3996)

- X.509 証明書の検証、特に名前の制約のチェックで、読み取りバッファオーバーランが発生する可能性があります。これは証明書チェーン署名の検証後に発生し、信頼できる発行者へのパスを構築できないにもかかわらず、CA が悪意のある証明書に署名するか、アプリケーションが証明書の検証を続行する必要があることに注意してください。読み取りバッファオーバーランによりクラッシュが発生し、サービス拒否攻撃につながる可能性があります。理論的には、プライベートアドバイザリのコンテンツ (プライベートキーや機密の平文など) が漏洩する可能性もありますが、このアドバイザリのリリース時点では、メモリコンテンツの漏洩につながる悪用は機能していません。TLS クライアントでは、悪意のあるサーバーに接続することでこれが発生する可能性があります。TLS サーバーでは、サーバーがクライアント認証をリクエストし、悪意のあるクライアントが接続すると、これが発生する可能性があります。(CVE-2022-4203)

- OpenSSL RSA Decryption 実装にタイミングベースのサイドチャネルが存在するため、Bleichenbacher スタイルの攻撃でネットワーク全体の平文を十分に復元できる可能性があります。復号化を成功させるためには、攻撃者が非常に多くの試行メッセージを復号化のために送信できる必要があります。
この脆弱性は、すべての RSA パディングモードに影響します:PKCS#1 v1.5、RSA-OEAP および RSASVE。たとえば、TLS 接続では、暗号化されたプレマスターシークレットをサーバーに送信するために、RSA が一般的にクライアントによって使用されます。クライアントとサーバー間の真の接続を観察した攻撃者が、この欠陥を利用して、試行メッセージをサーバーに送信し、それらの処理にかかった時間を記録する可能性があります。十分な量のメッセージの後、攻撃者が元の接続に使用されていたプレマスターシークレットを復元し、その接続を介して送信されたアプリケーションデータを復号化できる可能性があります。(CVE-2022-4304)

- 関数 PEM_read_bio_ex() が BIO から PEM ファイルを読み取り、名前 (例:
CERTIFICATE)、任意のヘッダーデータおよびペイロードデータを解析およびデコードします。関数が成功した場合、name_out、header、および data 引数に、関連するデコード済みデータを含むバッファへのポインターが入力されます。
呼び出し元には、これらのバッファを解放する責任があります。ペイロードデータが 0 バイトになる PEM ファイルを構築することが可能です。この場合、PEM_read_bio_ex() は失敗コードを返しますが、すでに解放されているバッファへのポインターがヘッダー引数に入力されます。呼び出し元もこのバッファを解放すると、二重解放が発生します。これはおそらくクラッシュにつながります。これを悪用して、解析用の悪意のある PEM ファイルを提供し、サービス拒否攻撃を仕掛ける攻撃者が存在する可能性があります。PEM_read_bio() および PEM_read() 関数は、PEM_read_bio_ex() の単純なラッパーであるため、これらの関数も直接影響を受けます。これらの関数は、PEM_X509_INFO_read_bio_ex() や SSL_CTX_use_serverinfo_file() などのその他の多数の OpenSSL 関数からも間接的に呼び出されるため、やはり脆弱です。PEM_read_bio_ex() が失敗コードを返す場合、呼び出し側はヘッダー引数を解放しないため、これらの関数の一部の OpenSSL 内部使用は脆弱ではありません。これらの場所には、PEM_read_bio_TYPE() 関数や、OpenSSL 3.0 で導入されたデコーダーが含められます。OpenSSL asn1parse コマンドラインアプリケーションも、この問題の影響を受けます。(CVE-2022-4450)

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

ソリューション

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

参考資料

https://www.cve.org/CVERecord?id=CVE-2023-0401

https://www.openssl.org/news/secadv/20230207.txt

https://www.openssl.org/policies/secpolicy.html

https://www.cve.org/CVERecord?id=CVE-2023-0286

https://www.cve.org/CVERecord?id=CVE-2023-0217

https://www.cve.org/CVERecord?id=CVE-2023-0216

https://www.cve.org/CVERecord?id=CVE-2023-0215

https://www.cve.org/CVERecord?id=CVE-2022-4450

https://www.cve.org/CVERecord?id=CVE-2022-4304

https://www.cve.org/CVERecord?id=CVE-2022-4203

プラグインの詳細

深刻度: High

ID: 168829

ファイル名: openssl_3_0_8.nasl

バージョン: 1.17

タイプ: combined

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

ファミリー: Web Servers

公開日: 2022/12/15

更新日: 2024/1/8

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

リスク情報

VPR

リスクファクター: Medium

スコア: 6.0

CVSS v2

リスクファクター: High

基本値: 7.1

現状値: 5.3

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

CVSS スコアのソース: CVE-2023-0286

CVSS v3

リスクファクター: High

基本値: 7.4

現状値: 6.4

ベクトル: CVSS:3.0/AV:N/AC:H/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

パッチ公開日: 2022/12/13

脆弱性公開日: 2022/12/13

参照情報

CVE: CVE-2022-3996, CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-0215, CVE-2023-0216, CVE-2023-0217, CVE-2023-0286, CVE-2023-0401

IAVA: 2022-A-0518-S