Amazon Linux 2 : edk2 (ALAS-2024-2502)

critical Nessus プラグイン ID 192206

概要

リモートの Amazon Linux 2 ホストに、セキュリティ更新プログラムがありません。

説明

したがって、ALAS2-2024-2502 のアドバイザリに記載されている複数の脆弱性の影響を受けます。

- X.509 GeneralName 型は、さまざまなタイプの名前を表現するための汎用型です。それらの名前の型の 1 つが EDIPartyName として知られています。OpenSSL は GENERAL_NAME_cmp 関数を提供しており、GENERAL_NAME の異なるインスタンスを比較して、それらが等しいかどうかを確認します。この関数は両方の GENERAL_NAME が EDIPARTYNAME を含んでいるときに正しく動作しません。NULL ポインターディファレンスが発生し、クラッシュが発生してサービス拒否攻撃を受ける可能性があります。OpenSSL 自体は、次の 2 つの目的で GENERAL_NAME_cmp 関数を使用します。1) 使用可能な CRL と X509 証明書に埋め込まれた CRL 配布ポイント間の CRL 配布ポイント名の比較。2) タイムスタンプ応答トークン署名者がタイムスタンプ機関名と一致することを確認する場合。(API 関数 TS_RESP_verify_response および TS_RESP_verify_token を介して公開) 攻撃者が比較される両方のアイテムを制御できる場合、その攻撃者はクラッシュを引き起こす可能性があります。たとえば、攻撃者がクライアントやサーバーを trick して、悪意のある CRL に対して悪意のある証明書をチェックさせると、これが発生する可能性があります。注意: 一部のアプリケーションは、証明書に埋め込まれた URL に基づいて CRL を自動的にダウンロードします。このチェックは、証明書と CRL の署名が検証される前に行われます。
OpenSSL の s_server、s_client、および検証ツールは、CRL の自動ダウンロードを実装する -crl_download オプションをサポートしており、この攻撃はこれらのツールに対して機能することが実証されています。関連のないバグとは、影響を受けるバージョンの OpenSSL が EDIPARTYNAME の正しいエンコーディングを解析または構築できないことを意味します。ただし、OpenSSL のパーサーが受け入れる無効な形式の EDIPARTYNAME が構築され、この攻撃が発生する可能性があります。OpenSSL のすべてのバージョン 1.1.1 および 1.0.2 は、この問題の影響を受けます。
他の OpenSSL リリースはサポート対象外であり、チェックされていません。OpenSSL 1.1.1i で修正されました (1.1.1-1.1.1h が影響を受けます)。OpenSSL 1.0.2xで修正されました (1.0.2~1.0.2w が影響を受けます)。(CVE-2020-1971)

- EVP_CipherUpdate、EVP_EncryptUpdate および EVP_DecryptUpdate への呼び出しは、入力長がプラットフォーム上の整数の最大許容長さに近い場合、出力長引数をオーバーフローすることがあります。このような場合、関数呼び出しからの戻り値は 1 (成功を示す) になりますが、出力の長さの値は負になります。これにより、アプリケーションが不適切に動作したり、クラッシュしたりする可能性があります。
OpenSSL バージョン 1.1.1i 以下は、この問題の影響を受けます。これらのバージョンのユーザーは、OpenSSL 1.1.1j にアップグレードする必要があります。OpenSSL バージョン 1.0.2x以下はこの問題の影響を受けます。しかしながら、OpenSSL 1.0.2はサポートが終了しており、今後は一般の更新を受け取れません。OpenSSL 1.0.2 のプレミアムサポートのお客様は 1.0.2y にアップグレードする必要があります。その他のユーザーは、1.1.1j にアップグレードする必要があります。OpenSSL 1.1.1j で修正されました (1.1.1 ~ 1.1.1i が影響を受けます)。
OpenSSL 1.0.2y で修正されました (1.0.2 ~ 1.0.2x が影響を受けます)。(CVE-2021-23840)

- OpenSSL パブリック API 関数 X509_issuer_and_serial_hash() は、X509 の証明書に含まれている発行者およびシリアルナンバーデータに基づき、一意のハッシュ値の作成を試みます。ただし、発行者フィールドの解析中に発生する可能性のあるエラー (発行者フィールドが悪意を持って構築された場合に発生する可能性がある) を、適切に処理できません。その後、NULL ポインターの deref とクラッシュに至り、サービス拒否攻撃を引き起こす可能性があります。X509_issuer_and_serial_hash() 関数は、OpenSSL 自体によって直接呼び出されることはありません。このため、アプリケーションは、この関数を直接使用し、信頼できないソースから取得した証明書でこの関数を使用する場合にのみ脆弱です。OpenSSL バージョン 1.1.1i 以下は、この問題の影響を受けます。これらのバージョンのユーザーは、OpenSSL 1.1.1j にアップグレードする必要があります。OpenSSL バージョン 1.0.2x以下はこの問題の影響を受けます。しかしながら、OpenSSL 1.0.2はサポートが終了しており、今後は一般の更新を受け取れません。OpenSSL 1.0.2 のプレミアムサポートのお客様は 1.0.2y にアップグレードする必要があります。その他のユーザーは、1.1.1j にアップグレードする必要があります。OpenSSL 1.1.1j で修正されました (1.1.1 ~ 1.1.1i が影響を受けます)。OpenSSL 1.0.2y で修正されました (1.0.2 ~ 1.0.2x が影響を受けます)。(CVE-2021-23841)

- 悪意を持って細工された再ネゴシエーションの ClientHello メッセージがクライアントから送信された場合、OpenSSL TLS サーバーがクラッシュする可能性があります。TLSv1.2再ネゴシエーションClientHelloでsignature_algorithms拡張 (初期のClientHelloに存在) が省略されているが、signature_algorithms_cert拡張が含まれている場合、NULLポインターデリファレンスが発生し、クラッシュとサービス拒否攻撃が引き起こされる可能性があります。サーバーは、TLSv1.2と再ネゴシエーションが有効になっている場合 (デフォルトの構成) にのみ脆弱です。OpenSSL TLSクライアントは、この問題の影響を受けません。OpenSSLのすべてのバージョン1.1.1は、この問題の影響を受けます。これらのバージョンのユーザーは、OpenSSL 1.1.1kにアップグレードする必要があります。OpenSSL 1.0.2は、この問題の影響を受けません。OpenSSL 1.1.1kで修正されました(1.1.1-1.1.1jが影響を受けます)。(CVE-2021-3449)

- X509_V_FLAG_X509_STRICTフラグは、証明書チェーンに存在する証明書の追加セキュリティチェックを有効にします。デフォルトではこのフラグは設定されていません。OpenSSLバージョン1.1.1hから、楕円曲線パラメーターを明示的にエンコードしたチェーン内の証明書を許可しないためのチェックが、厳密なチェックとして追加されました。このチェックの実装にエラーがあるため、チェーン内の証明書が有効なCA証明書であることを確認する以前のチェックの結果が上書きされました。これは、非CA証明書が他の証明書を発行できてはならないというチェックを実質的にバイパスします。目的が構成されている場合、証明書が有効なCAであるかどうかをチェックする機会がそれ以降にあります。libcryptoに実装されているすべての名前付き目的値が、このチェックを実行します。したがって、目的が設定されている場合には、厳密なフラグが使用されていても証明書チェーンが拒否されます。libsslのクライアントとサーバーの証明書検証ルーチンでは、デフォルトで目的が設定されていますが、これはアプリケーションによってオーバーライドまたは削除される可能性があります。この影響を受けるには、アプリケーションによってX509_V_FLAG_X509_STRICT検証フラグが明示的に設定され、かつ証明書検証の目的は設定されないか、TLSクライアントまたはサーバーアプリケーションの場合にはデフォルトの目的がオーバーライドされる必要があります。OpenSSLバージョン1.1.1h以降は、この問題の影響を受けます。これらのバージョンのユーザーは、OpenSSL 1.1.1kにアップグレードする必要があります。
OpenSSL 1.0.2は、この問題の影響を受けません。OpenSSL 1.1.1kで修正されました(1.1.1h-1.1.1jが影響を受けます)。
(CVE-2021-3450)

- ASN.1 文字列は OpenSSL 内部で ASN1_STRING 構造として表されます。この構造には、文字列データを保持するバッファと、バッファ長を保持するフィールドが含まれます。通常の C 文字列とは対照的です。C 文字列は、NUL (0) バイトで終了する文字列データではバッファとして表されます。厳密に必須ではないものの、OpenSSL 独自の d2i 関数 (および類似の解析関数) を使用して解析される ASN.1 文字列、および ASN1_STRING_set() 関数を使用して設定される値が含まれる文字列は、ASN1_STRING 構造のバイト配列を NUL 終端させることにもなります。ただし、ASN1_STRING 配列でデータと長さのフィールドを直接設定することにより、アプリケーションがバイト配列を NUL 終端させることのない、有効な ASN1_STRING 構造を直接的に構成することができます。これは、ASN1_STRING_set0() 関数を使用する場合にも生じる可能性があります。ASN.1 データを出力する多くの OpenSSL 関数で、直接構成されたこと文字列であることが保証されていない場合でも、ASN1_STRING バイト配列が NUL 終端されることが分かっています。アプリケーションによって ASN.1 構造の出力がリクエストされる場合、ASN.1 構造に、データフィールが NUL 終端することなくアプリケーションによって直接構成された ASN1_STRING が含まれていると、読み取りバッファのオーバーランが生じる可能性があります。同様の状況が証明書の名前制限の処理中にも生じることがあります (例えば、OpenSSL 解析関数によってロードされるのではなく、アプリケーションによって直接構成された証明書がある場合、その証明書に NUL 終端されていない ASN1_STRING 構造が含まれているときなどです)。また、X509_get1_email() 関数、X509_REQ_get1_email() 関数、および X509_get1_ocsp() 関数でも生じる可能性があります。悪意のあるアクターがアプリケーションで ASN1_STRING を直接構成させ、影響のあるいずれかの OpenSSL 関数で処理すると、この問題が引き起こされることがあります。結果としてクラッシュする可能性があります (サービス拒否攻撃が生じます)。
また、専用メモリのコンテンツ (秘密鍵、秘密情報を含む平文など) が漏洩することがあります。OpenSSL 1.1.1l で修正されました (1.1.1-1.1.1k が影響を受けます)。OpenSSL 1.0.2za で修正されました (1.0.2-1.0.2y が影響を受けます)。(CVE-2021-3712)

- モジュラー平方根を計算する BN_mod_sqrt() 関数に、非素数の係数に対して永久にループするバグが含まれています。内部的に、この関数は圧縮形式の楕円曲線公開鍵または圧縮形式でエンコードされたベースポイントを持つ明示的な楕円曲線パラメーターを含む証明書を解析する際に使用されます。無効な明示的な曲線パラメーターを持つ証明書を作成することで、無限ループを発生させることが可能です。証明書の解析は、証明書の署名の検証前に行われるため、外部から提供された証明書を解析するプロセスは、サービス拒否攻撃を受ける可能性があります。細工された秘密鍵を解析する際に、明示的な楕円曲線パラメーターを含む可能性があるため、無限ループに達する可能性もあります。したがって、以下の脆弱な状況が含まれます。- サーバー証明書を消費する TLS クライアント - クライアント証明書を消費する TLS サーバー - 顧客から証明書または秘密鍵を取得するホスティングプロバイダー - サブスクライバーからの証明書リクエストを解析する認証局 - ASN.1 楕円曲線パラメーターを解析するその他のもの。攻撃者がパラメーター値をコントロールできる場合、BN_mod_sqrt() を使用するその他のアプリケーションは、この DoS の問題に対して脆弱です。OpenSSL 1.0.2バージョンでは、証明書の初期解析中に公開鍵が解析されないため、無限ループを発生させることがわずかに困難になります。ただし、証明書の公開鍵が必要な何らかの操作を行うと、無限ループが発生します。特に、攻撃者は自己署名証明書を使用して、証明書署名の検証中にループを発生させる可能性があります。OpenSSL バージョン、1.0.21.1.1および 3.0は、この問題の影響を受けます。これは 2022 年 3 月 15 日の 1.1.1n および 3.0.2のリリースで対処されました。OpenSSL 3.0.2で修正されました (3.0.0、3.0.1が影響を受けました)。OpenSSL 1.1.1n で修正されました (1.1.1-1.1.1m が影響を受けました)。OpenSSL 1.0.2zd で修正されました (1.0.2-1.0.2zc が影響を受けました)。(CVE-2022-0778)

- 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)

- CVE-2022-1292 で特定された c_rehash シェルコマンドインジェクションに加えて、コマンドインジェクションを防止するために c_rehash スクリプトがシェルメタ文字を適切にサニタイズしていないという状況がコードレビューで見つかりました。CVE-2022-1292 が修正されたとき、ハッシュされている証明書のファイル名がシェルを介して実行されるコマンドに渡される可能性があるスクリプトに他の場所があるとは発見されませんでした。このスクリプトは、一部のオペレーティングシステムによって、自動的に実行される方法で配布されます。このようなオペレーティングシステムでは、攻撃者がスクリプトの権限で任意のコマンドを実行する可能性があります。c_rehash スクリプトの使用は旧式と考えられており、OpenSSL rehash コマンドラインツールで置き換える必要があります。OpenSSL 3.0.4で修正されました (3.0.0、3.0.1、3.0.2、3.0.3 が影響を受けます)。OpenSSL 1.1.1p で修正されました (1.1.1-1.1.1o が影響を受けます)。OpenSSL 1.0.2zf で修正されました (1.0.2-1.0.2ze が影響を受けます)。(CVE-2022-2068)

- AES-NI アセンブリ最適化実装を使用する 32 ビット x86 プラットフォームの AES OCB モードは、一部の状況でデータ全体を暗号化しません。これにより、書き込まれなかったメモリに既存の 16 バイトのデータが漏洩する可能性があります。インプレース暗号化の特別なケースでは、平文の 16 バイトが漏洩します。OpenSSL は、TLS および DTLS の OCB ベースの暗号化パッケージをサポートしていないため、どちらも影響を受けません。OpenSSL 3.0.5で修正されました (3.0.0-3.0.4 が影響を受けました)。OpenSSL 1.1.1q で修正されました (1.1.1-1.1.1p が影響を受けます)。(CVE-2022-2097)

- 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)

- パブリック API 関数 BIO_new_NDEF は、BIO を介して ASN.1 データをストリーミングするために使用されるヘルパー関数です。これは、SMIME、CMS、および PKCS7 ストリーミング機能をサポートするために OpenSSL の内部で主に使用されますが、エンドユーザーのアプリケーションから直接呼び出されることもあります。関数は、呼び出し元から BIO を受け取り、その前に新しい BIO_f_asn1 フィルター BIO を追加して BIO チェーンを形成し、BIO チェーンの新しいヘッドを呼び出し元に返します。特定の状況で、たとえば CMS 受信者の公開鍵が無効な場合、新しいフィルター BIO が解放され、関数は失敗を示す NULL の結果を返します。ただし、この場合、BIO チェーンは適切にクリーンアップされず、呼び出し元によって渡された BIO は、以前に解放されたフィルター BIO への内部ポインターを依然として保持します。呼び出し元が BIO で BIO_pop() を呼び出し続けると、メモリ解放後使用 (Use After Free) が発生します。これはおそらくクラッシュにつながります。このシナリオは、内部関数 B64_write_ASN1() で直接発生します。このため、BIO_new_NDEF() が呼び出され、その後 BIO で BIO_pop() 呼び出される可能性があります。この内部関数は、パブリック API 関数 PEM_write_bio_ASN1_stream、PEM_write_bio_CMS_stream、PEM_write_bio_PKCS7_stream、SMIME_write_ASN1、SMIME_write_CMS および SMIME_write_PKCS7 によって順番に呼び出されます。これにより影響を受ける可能性があるその他のパブリック API 関数には、i2d_ASN1_bio_stream、BIO_new_CMS、BIO_new_PKCS7、i2d_CMS_bio_stream、i2d_PKCS7_bio_stream があります。OpenSSL cms および smime コマンドラインアプリケーションも同様に影響を受けます。(CVE-2023-0215)

- 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 証明書チェーンの検証に関連する、OpenSSL のサポートされているすべてのバージョンで、セキュリティの脆弱性が見つかりました。攻撃者は悪意のある証明書チェーンを作成して計算リソースを指数関数的に使用することでこの脆弱性を悪用し、影響を受けるシステムでサービス拒否 (DoS) 攻撃を引き起こす可能性があります。ポリシー処理はデフォルトで無効化されていますが、「-policy」引数をコマンドラインユーティリティに渡すか、「X509_VERIFY_PARAM_set1_policies()」関数を呼び出すことによって有効化できます。(CVE-2023-0464)

- 証明書の検証時にデフォルト以外のオプションを使用するアプリケーションは、特定のチェックを回避するために、悪意のある CA からの攻撃に対して脆弱である可能性があります。リーフ証明書の無効な証明書ポリシーは、OpenSSL によって警告なしに無視され、その証明書に対する他の証明書ポリシーのチェックはスキップされます。悪意のある CA がこれを使用して、証明書のポリシーチェックを完全に回避するために、無効な証明書ポリシーを意図的にアサートする可能性があります。ポリシー処理はデフォルトで無効化されていますが、「-policy」引数をコマンドラインユーティリティに渡すか、「X509_VERIFY_PARAM_set1_policies()」関数を呼び出すことによって有効化できます。(CVE-2023-0465)

- 関数 X509_VERIFY_PARAM_add0_policy() が文書化され、証明書の検証を行う際に、証明書ポリシーチェックが暗黙的に有効になります。ただし、関数の実装はチェックを有効にしません。これにより、無効または不適切なポリシーを持つ証明書が証明書検証に合格する可能性があります。
ポリシーチェックを突然有効にすると、既存のデプロイメントが中断する可能性があるため、X509_VERIFY_PARAM_add0_policy() 関数の既存の動作を維持することが決定されました。代わりに、証明書ポリシーチェックを実行するために OpenSSL を必要とするアプリケーションは、X509_VERIFY_PARAM_set1_policies() を使用するか、X509_VERIFY_PARAM_set_flags() を X509_V_FLAG_POLICY_CHECK フラグ引数で呼び出して、ポリシーチェックを明示的に有効にする必要があります。
証明書ポリシーのチェックは、OpenSSL ではデフォルトで無効になっており、アプリケーションでは通常使用されません。
(CVE-2023-0466)

- 問題の要約: 一部の特別に細工された ASN.1 オブジェクト識別子、またはそれらを含むデータの処理が非常に遅くなる場合があります。影響の要約: OBJ_obj2txt() を直接使用したり、メッセージサイズ制限のない OpenSSL サブシステム OCSP、PKCS7/SMIME、CMS、CMP/CRMF または TS のいずれかを使用したりするアプリケーションでは、これらのメッセージを処理するときに非常に長い遅延が発生し、サービス拒否につながる可能性があります。OBJECT IDENTIFIER は一連の番号 (サブ識別子) で構成され、そのほとんどにサイズ制限がありません。
OBJ_obj2txt() は、DER エンコーディング形式で (OpenSSL タイプ ASN1_OBJECT を使用して) 与えられた ASN.1 OBJECT IDENTIFIER を、ピリオドで区切られた 10 進形式の OBJECT IDENTIFIER のサブ識別子である、その正規の数値テキスト形式に変換するために使用できます。OBJECT IDENTIFIER のサブ識別子の 1 つが非常に大きい (これらは、数十または数百 KiB を占めるような非常に大きいサイズ) 場合、テキストの 10 進数への変換に非常に長い時間がかかる場合があります。時間の複雑性は、サブ識別子のバイトサイズ (*) を「n'」とすると、O(n^2) です。OpenSSL 3.0で、文字列形式の名前 / 識別子を使用して暗号アルゴリズムをフェッチするサポートが導入されました。これには、フェッチするアルゴリズムの識別子として、正規の数値テキスト形式の OBJECT IDENTIFIER の使用が含まれます。このような OBJECT IDENTIFIER は、ASN.1 構造の AlgorithmIdentifier を通じて受信される可能性があります。これは、渡されたデータの署名または検証、暗号化または復号化、またはダイジェストに使用する暗号化アルゴリズムを指定するために、複数のプロトコルで一般的に使用されます。OBJ_obj2txt() を信頼できないデータで直接呼び出すアプリケーションは、OpenSSL の全バージョンで影響を受けます。表示のみの目的であれば、深刻度は低いと考えられます。OpenSSL 3.0以降では、これは OCSP、PKCS7/SMIME、CMS、CMP/CRMF または TS のサブシステムに影響します。また、署名の検証などの単純なものも含め、X.509 証明書を処理するあらゆるものに影響を与えます。OpenSSL のすべてのバージョンで、ピアの証明書チェーンに 100KiB の制限があるため、TLS への影響は比較的低いです。さらに、これはクライアント、または明示的にクライアント認証を有効にしているサーバーにのみ影響を与えます。OpenSSL 1.1.1および 1.0.2では、これは X.509 証明書などの多様なオブジェクトの表示にのみ影響します。これは、サービス拒否を引き起こすような方法で発生しないと想定されているため、これらのバージョンは、懸念されるような影響はないと考えられるため、深刻度は低いと思われます。(CVE-2023-2650)

- 問題の要約: 過度に長い DH キーまたはパラメーターのチェックは、非常に遅くなる可能性があります。影響の概要:
DH_check()、DH_check_ex() または EVP_PKEY_param_check() 関数を使用して DH キーまたは DH パラメーターをチェックするアプリケーションは、長い遅延が発生する可能性があります。チェックされているキーまたはパラメーターが信頼できないソースから取得された場合、サービス拒否が引き起こされる可能性があります。DH_check() 関数は、DH パラメーターのさまざまなチェックを実行します。これらのチェックの 1 つで、係数 (「p」パラメーター) が大きすぎないことを確認します。非常に大きな係数を使用すると遅くなるため、OpenSSL は通常、長さが 10,000 ビットを超える係数を使用しません。ただし、DH_check() 関数は、提供されたキーまたはパラメーターのさまざまな側面をチェックします。これらのチェックの中には、すでに大きすぎることが判明している場合でも、提供された係数値を使用するものがあります。DH_check() を呼び出し、信頼できないソースから取得したキーまたはパラメーターを提供するアプリケーションは、サービス拒否攻撃を受けやすくなる可能性があります。関数 DH_check() は、それ自体が多数の他の OpenSSL 関数によって呼び出されます。他の関数を呼び出すアプリケーションも同様に影響を受ける可能性があります。これによって影響を受ける他の関数は、DH_check_ex() と EVP_PKEY_param_check() です。OpenSSL の dhparam および pkeyparam コマンドラインアプリケーションも、「-check」オプションを使用する際に脆弱です。OpenSSL SSL/TLS の実装は、この問題の影響を受けません。OpenSSL 3.0 および 3.1 FIPS プロバイダーは、この問題の影響を受けません。(CVE-2023-3446)

- 問題の要約: 過度に長い DH キーまたはパラメーターのチェックは、非常に遅くなる可能性があります。影響の概要:
DH_check()、DH_check_ex() または EVP_PKEY_param_check() 関数を使用して DH キーまたは DH パラメーターをチェックするアプリケーションは、長い遅延が発生する可能性があります。チェックされているキーまたはパラメーターが信頼できないソースから取得された場合、サービス拒否が引き起こされる可能性があります。DH_check() 関数は、DH パラメーターのさまざまなチェックを実行します。CVE-2023-3446 の修正後、大きな q パラメーター値も、これらのチェックの一部で過度に長い計算をトリガーする可能性があることが発見されました。正しい q 値は、存在する場合でも、係数 p パラメーターより大きくすることはできません。したがって、q が p より大きい場合は、これらのチェックを実行する必要はありません。DH_check() を呼び出し、信頼できないソースから取得したキーまたはパラメーターを提供するアプリケーションは、サービス拒否攻撃に対して脆弱な可能性があります。関数 DH_check() は、それ自体が多数の他の OpenSSL 関数によって呼び出されます。他の関数を呼び出すアプリケーションも同様に影響を受ける可能性があります。これによって影響を受ける他の関数は、DH_check_ex() と EVP_PKEY_param_check() です。
OpenSSL の dhparam および pkeyparam コマンドラインアプリケーションも、「-check」オプションを使用する際に脆弱です。OpenSSL SSL/TLS の実装は、この問題の影響を受けません。OpenSSL 3.0 および 3.1 FIPS プロバイダーは、この問題の影響を受けません。(CVE-2023-3817)

- 問題の要約: 過度に長い X9.42 DH 鍵の生成、または過度に長い X9.42 DH 鍵またはパラメーターのチェックは、非常に遅くなる場合があります。影響の概要: 関数 DH_generate_key() を使用して X9.42 DH 鍵を生成するアプリケーションは、長い遅延が発生する可能性があります。同様に、DH_check_pub_key()、DH_check_pub_key_ex()、または EVP_PKEY_public_check() を使用して X9.42 DH 鍵または X9.42 DH パラメーターをチェックするアプリケーションは、長い遅延が発生する可能性があります。チェックされているキーまたはパラメーターが信頼できないソースから取得された場合、サービス拒否が引き起こされる可能性があります。DH_check() が必要なすべてのチェックを実行する一方で (CVE-2023-3817 時点)、DH_check_pub_key() はこれらのチェックを一切行わないため、過度に大きな P および Q パラメーターに対して脆弱です。同様に、DH_generate_key() は過度に大きな P に対してチェックを実行しますが、過度に大きな Q に対してはチェックしません。DH_generate_key() または DH_check_pub_key() を呼び出し、信頼できないソースから取得した鍵またはパラメーターを供給するアプリケーションは、DoS 攻撃 (サービス拒否攻撃) に脆弱です。DH_generate_key() および DH_check_pub_key() は、多数の他の OpenSSL 関数によっても呼び出されます。他の関数を呼び出すアプリケーションも同様に影響を受ける可能性があります。これによって影響を受ける他の関数は、DH_check_pub_key_ex()、EVP_PKEY_public_check()、EVP_PKEY_generate() です。OpenSSL genpkey コマンドラインアプリケーションと同様に、-pubcheck オプションを使用するときの OpenSSL pkey コマンドラインアプリケーションも脆弱です。
OpenSSL SSL/TLS の実装は、この問題の影響を受けません。OpenSSL 3.0 および 3.1 FIPS プロバイダーは、この問題の影響を受けません。(CVE-2023-5678)

- 問題のサマリー: 悪意を持ってフォーマットされた PKCS12 ファイルを処理すると、OpenSSL がクラッシュし、サービス拒否攻撃が引き起こされる可能性があります。影響のサマリー: 信頼できないソースから PKCS12 フォーマットでファイルをロードするアプリケーションが突然終了する可能性があります。PKCS12 形式のファイルには、証明書とキーが含まれる可能性があり、信頼できないソースからのものである可能性があります。PKCS12 の仕様により、特定のフィールドを NULL にすることができますが、OpenSSL はこの場合を正しくチェックしません。これにより、NULL ポインター逆参照が発生し、OpenSSL がクラッシュする可能性があります。アプリケーションが、OpenSSL API を使用して信頼できないソースからの PKCS12 ファイルを処理する場合、そのアプリケーションはこの問題に対して脆弱になります。これに対して脆弱な OpenSSL API は次のとおりです。
PKCS12_parse()、PKCS12_unpack_p7data()、PKCS12_unpack_p7encdata()、PKCS12_unpack_authsafes()、PKCS12_newpass()。SMIME_write_PKCS7() の同様の問題も修正しました。ただし、この関数はデータの書き込みに関連するため、セキュリティ上重要とは見なしません。3.2、3.1、3.0 の FIPS モジュールは、この問題の影響を受けません。(CVE-2024-0727)

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

ソリューション

「yum update edk2」を実行してシステムを更新してください。

参考資料

https://alas.aws.amazon.com/AL2/ALAS-2024-2502.html

https://alas.aws.amazon.com/cve/html/CVE-2020-1971.html

https://alas.aws.amazon.com/cve/html/CVE-2021-23840.html

https://alas.aws.amazon.com/cve/html/CVE-2021-23841.html

https://alas.aws.amazon.com/cve/html/CVE-2021-3449.html

https://alas.aws.amazon.com/cve/html/CVE-2021-3450.html

https://alas.aws.amazon.com/cve/html/CVE-2021-3712.html

https://alas.aws.amazon.com/cve/html/CVE-2022-0778.html

https://alas.aws.amazon.com/cve/html/CVE-2022-1292.html

https://alas.aws.amazon.com/cve/html/CVE-2022-2068.html

https://alas.aws.amazon.com/cve/html/CVE-2022-2097.html

https://alas.aws.amazon.com/cve/html/CVE-2022-4304.html

https://alas.aws.amazon.com/cve/html/CVE-2022-4450.html

https://alas.aws.amazon.com/cve/html/CVE-2023-0215.html

https://alas.aws.amazon.com/cve/html/CVE-2023-0286.html

https://alas.aws.amazon.com/cve/html/CVE-2023-0464.html

https://alas.aws.amazon.com/cve/html/CVE-2023-0465.html

https://alas.aws.amazon.com/cve/html/CVE-2023-0466.html

https://alas.aws.amazon.com/cve/html/CVE-2023-2650.html

https://alas.aws.amazon.com/cve/html/CVE-2023-3446.html

https://alas.aws.amazon.com/cve/html/CVE-2023-3817.html

https://alas.aws.amazon.com/cve/html/CVE-2023-5678.html

https://alas.aws.amazon.com/cve/html/CVE-2024-0727.html

https://alas.aws.amazon.com/faqs.html

プラグインの詳細

深刻度: Critical

ID: 192206

ファイル名: al2_ALAS-2024-2502.nasl

バージョン: 1.2

タイプ: local

エージェント: unix

公開日: 2024/3/18

更新日: 2024/3/19

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

リスク情報

VPR

リスクファクター: High

スコア: 7.7

CVSS v2

リスクファクター: Critical

基本値: 10

現状値: 7.8

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

CVSS スコアのソース: CVE-2022-2068

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: p-cpe:/a:amazon:linux:edk2-aarch64, p-cpe:/a:amazon:linux:edk2-debuginfo, p-cpe:/a:amazon:linux:edk2-ovmf, p-cpe:/a:amazon:linux:edk2-tools, p-cpe:/a:amazon:linux:edk2-tools-doc, p-cpe:/a:amazon:linux:edk2-tools-python, cpe:/o:amazon:linux:2

必要な KB アイテム: Host/local_checks_enabled, Host/AmazonLinux/release, Host/AmazonLinux/rpm-list

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

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

パッチ公開日: 2024/3/13

脆弱性公開日: 2020/12/8

参照情報

CVE: CVE-2020-1971, CVE-2021-23840, CVE-2021-23841, CVE-2021-3449, CVE-2021-3450, CVE-2021-3712, CVE-2022-0778, CVE-2022-1292, CVE-2022-2068, CVE-2022-2097, CVE-2022-4304, CVE-2022-4450, CVE-2023-0215, CVE-2023-0286, CVE-2023-0464, CVE-2023-0465, CVE-2023-0466, CVE-2023-2650, CVE-2023-3446, CVE-2023-3817, CVE-2023-5678, CVE-2024-0727