概要
リモートサービスは、複数の脆弱性の影響を受けます。
説明
リモートホストにインストールされている OpenSSL は、3.0.3 より前のバージョンです。したがって、3.0.3 のアドバイザリに記載されている複数の脆弱性の影響を受けます。
- ハッシュテーブルを空にする OPENSSL_LH_flush() 関数に、削除されたハッシュテーブルエントリによって占有されているメモリの再利用を破損させるバグが含まれています。この関数は、証明書またはキーをデコードするときに使用されます。長期間有効なプロセスが証明書またはキーを定期的にデコードすると、そのメモリ使用率が無制限に拡大し、オペレーティングシステムによってプロセスが終了され、サービス拒否が引き起こされる可能性があります。
また、空のハッシュテーブルエントリをトラバースするのにさらに時間がかかるようになります。通常、このような長期間有効なプロセスは、クライアント証明書認証を受け入れるように構成された TLS クライアントまたは TLS サーバーです。この関数は OpenSSL 3.0バージョンに追加されたため、古いリリースはこの問題の影響を受けません。OpenSSL 3.0.3で修正されました (3.0.0、3.0.1、3.0.2 が影響を受けました)。(CVE-2022-1473)
- RC4-MD5 暗号スイートの OpenSSL 3.0実装が、AAD データを MAC キーとして不適切に使用します。
これにより、MAC キーが自明に予測可能になります。攻撃者はこの問題を悪用し、中間者攻撃を実行して 1 つのエンドポイントから OpenSSL 3.0受信者に送信されるデータを変更することで、変更されたデータが MAC 整合性チェックにパスするようにする可能性があります。OpenSSL 3.0エンドポイントから非 OpenSSL 3.0エンドポイントに送信されたデータは、受信者によって常に拒否され、接続はその時点で失敗します。多くのアプリケーションプロトコルでは、最初にクライアントからサーバーにデータを送信する必要があります。
したがって、このような場合、OpenSSL 3.0以外のクライアントと通信する際に影響を受けるのは、OpenSSL 3.0サーバーのみです。両方のエンドポイントが OpenSSL 3.0の場合、攻撃者は両方向に送信されているデータを変更する可能性があります。この場合、アプリケーションプロトコルに関係なく、クライアントとサーバーの両方が影響を受ける可能性があります。注意: 攻撃者が存在しない場合、このバグにより、OpenSSL 3.0以外のエンドポイントと通信する OpenSSL 3.0エンドポイントが、この暗号スイートの使用する場合、ハンドシェイクの完了に失敗します。データの機密性はこの問題の影響を受けません。つまり、攻撃者はこの暗号スイートを使用して暗号化されたデータを復号化できません。変更のみが可能です。この攻撃が機能するためには、両方のエンドポイントが RC4-MD5 暗号スイートを正当にネゴシエートする必要があります。この暗号スイートは、デフォルトでは OpenSSL 3.0でコンパイルされておらず、デフォルトのプロバイダーまたはデフォルトの暗号スイートリストでは利用できません。TLSv1.3 がネゴシエートされた場合、この暗号スイートは使用されません。OpenSSL 3.0エンドポイントがこの暗号スイートを使用するには、以下が発生している必要があります。1) OpenSSL は (デフォルトではない) コンパイル時間オプション enable-weak-ssl-ciphers でコンパイルされている必要があります。2) OpenSSL は (アプリケーションコードまたは構成を通じて) レガシープロバイダーを明示的にロードしている必要があります。3) 暗号スイートは暗号スイートリストに明示的に追加されている必要があります。4) libssl セキュリティレベルが 0 (デフォルトは 1) に設定されている必要があります。5) TLSv1.3 より前のバージョンの SSL/TLS がネゴシエートされている必要があります。6) 両方のエンドポイントは、両方のエンドポイントに共通する他のエンドポイントよりも優先して RC4-MD5 暗号スイートをネゴシエートする必要があります。OpenSSL 3.0.3で修正されました (3.0.0、3.0.1、3.0.2 が影響を受けました)。(CVE-2022-1434)
- 関数「OCSP_basic_verify」は、OCSP 応答で署名者証明書を検証します。(デフォルト以外の) フラグ OCSP_NOCHECKS が使用される場合、応答署名証明書が検証に失敗した場合でも、応答は正になります (検証が成功したことを意味します)。「OCSP_basic_verify」のほとんどのユーザーは、OCSP_NOCHECKS フラグを使用しないことが予想されます。この場合、証明書検証が失敗した場合、「OCSP_basic_verify」関数は負の値 (致命的なエラーを示す) を返します。この場合の通常の期待される戻り値は 0 です。この問題は、コマンドライン OpenSSL ocsp アプリケーションにも影響を与えます。-no_cert_checks オプションのある ocsp 応答を検証する際に、
コマンドラインアプリケーションは、実際には失敗しているにもかかわらず、検証が成功していると報告します。この場合、間違いの正常な応答には、失敗を示し、明らかに成功した結果とは矛盾するエラーメッセージも付随します。OpenSSL 3.0.3で修正されました (3.0.0、3.0.1、3.0.2 が影響を受けました)。(CVE-2022-1343)
- c_rehash スクリプトはシェルのメタ文字を適切にサニタイズしておらず、コマンドインジェクションを防ぎません。このスクリプトは、一部のオペレーティングシステムによって、自動的に実行される方法で配布されます。このようなオペレーティングシステムでは、攻撃者がスクリプトの権限で任意のコマンドを実行する可能性があります。c_rehash スクリプトの使用は旧式と考えられており、OpenSSL rehash コマンドラインツールで置き換える必要があります。
OpenSSL 3.0.3で修正されました (3.0.0、3.0.1、3.0.2 が影響を受けました)。OpenSSL 1.1.1o で修正されました (1.1.1-1.1.1n が影響を受けました)。
OpenSSL 1.0.2ze で修正されました (1.0.2-1.0.2zd が影響を受けました)。(CVE-2022-1292)
Nessus はこれらの問題をテストしておらず、代わりにアプリケーションが自己報告するバージョン番号にのみ依存していることに注意してください。
ソリューション
OpenSSLのバージョン3.0.3以降にアップグレードしてください。
プラグインの詳細
ファイル名: openssl_3_0_3.nasl
エージェント: windows, macosx, unix
設定: 徹底したチェックを有効にする
サポートされているセンサー: Nessus Agent, Nessus
リスク情報
ベクトル: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C
ベクトル: 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:openssl:openssl
必要な KB アイテム: installed_sw/OpenSSL
エクスプロイトの容易さ: Exploits are available