CVE-2021-4044
libsslにおけるX509_verify_cert()内部エラーの不正な処理
- 公開済み
- 2021/12/14
- 更新済み
- 2024/09/17
- CNA の割り当て
- openssl
- 観察された証拠
- 2026/08/04
プライマリ CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H高 · 今後 30 日間
- パーセンタイル
- 98.9%
- モデルの日付
- 2026/10/19
EPSS は統計的な推定値であり、確実性や影響の尺度ではありません。 CVSS、KEV ステータス、暴露、環境と組み合わせます。
概要
OpenSSL の libssl は、クライアント側でサーバーから提供された証明書を検証するために X509_verify_cert() を内部的に呼び出します。この関数は、内部エラー(メモリ不足など)を示すために負の戻り値を返すことがあります。このような負の戻り値は OpenSSL によって誤って処理され、IO 関数(SSL_connect() や SSL_do_handshake() など)が成功を示さなくなり、その後の SSL_get_error() の呼び出しで SSL_ERROR_WANT_RETRY_VERIFY という値が返される原因となります。この戻り値は、アプリケーションが事前に SSL_CTX_set_cert_verify_callback() を呼び出している場合にのみ OpenSSL によって返されることを想定されています。ほとんどのアプリケーションはこれを行わないため、SSL_get_error() から返される SSL_ERROR_WANT_RETRY_VERIFY の戻り値は完全に予期しないものとなり、その結果、アプリケーションが正しく動作しない可能性があります。正確な動作はアプリケーションに依存しますが、クラッシュ、無限ループ、またはその他の同様の誤った応答を引き起こす可能性があります。この問題は、OpenSSL 3.0 の別のバグと組み合わさることでさらに深刻になります。そのバグにより、証明書チェーンの処理中に X509_verify_cert() が内部エラーを示すことがあります。これは、証明書に Subject Alternative Name 拡張機能が含まれておらず、かつ認証局が名前制約を強制している場合に発生します。この問題は、有効なチェーンでも発生する可能性があります。この2つの問題を組み合わせることで、攻撃者はアプリケーションに依存した誤った動作を誘発する可能性があります。OpenSSL 3.0.1 で修正されました(影響を受けるのは 3.0.0)。
ソース
Pythonスクリプトで、CVE-2021-4044の脆弱性に対するOpenSSLのバージョンを確認し、ユーザー指定のWebサイトへのSSL/TLS接続をテストします。エラーハンドリングとレポート機能を備えています。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。