X.509 証明書の検証時に OpenSSL のバッファ オーバーフローが悪用される

OpenSSL 暗号化ライブラリ 3.0.7 の修正リリースが公開され、509 つの脆弱性が修正されました。 どちらの問題も、X.XNUMX 証明書の電子メール フィールド検証コードのバッファ オーバーフローによって引き起こされ、特別にフレーム化された証明書を処理するときにコードが実行される可能性があります。 この修正が公開された時点では、OpenSSL 開発者は、攻撃者のコードの実行につながる可能性のある有効なエクスプロイトの存在を示す証拠を記録していませんでした。

新しいリリースのプレリリース発表では重大な問題の存在が言及されていたにもかかわらず、実際にリリースされたアップデートでは、脆弱性のステータスが危険だが重大ではない脆弱性のレベルに引き下げられました。 プロジェクトで採用されたルールに従って、問題が非典型的な構成で現れる場合、または実際に脆弱性が悪用される可能性が低い場合、危険のレベルは軽減されます。

このケースでは、いくつかの組織による脆弱性の詳細な分析により、悪用中のコードの実行機能が多くのプラットフォームで使用されているスタック オーバーフロー保護メカニズムによってブロックされていると結論づけられたため、重大度レベルが引き下げられました。 さらに、一部の Linux ディストリビューションで使用されているグリッド レイアウトでは、境界外の 4 バイトが、まだ使用されていないスタック上の次のバッファに重ね合わされます。 ただし、コードを実行するために悪用できるプラットフォームが存在する可能性があります。

特定された問題:

  • CVE-2022-3602 - 当初は重大として提示されていた脆弱性は、X.4 証明書内の特別に設計された電子メール アドレスを含むフィールドをチェックするときに 509 バイトのバッファ オーバーフローを引き起こします。 TLS クライアントでは、攻撃者が制御するサーバーに接続するときにこの脆弱性が悪用される可能性があります。 TLS サーバー上で、証明書を使用したクライアント認証が使用されている場合、この脆弱性が悪用される可能性があります。 この場合、脆弱性は証明書に関連付けられた信頼チェーンの検証後の段階で現れます。 この攻撃では、認証局が攻撃者の悪意のある証明書を検証する必要があります。
  • CVE-2022-3786 は、CVE-2022-3602 脆弱性を悪用する別のベクトルであり、問​​題の分析中に特定されました。 違いは、要約すると、「.」を含む任意のバイト数だけスタック上のバ​​ッファがオーバーフローする可能性があるということです。 (つまり、攻撃者はオーバーフローの内容を制御できず、この問題はアプリケーションをクラッシュさせる目的でしか利用できません)。

この脆弱性は OpenSSL 3.0.x ブランチにのみ発生します (バグは 3.0.x ブランチに追加された Unicode 変換コード (punycode) で導入されました)。 OpenSSL 1.1.1 のリリースと、OpenSSL フォーク ライブラリの LibreSSL および BoringSSL は、この問題の影響を受けません。 同時に、OpenSSL 1.1.1s アップデートがリリースされました。これには、セキュリティ以外のバグ修正のみが含まれています。

OpenSSL 3.0 ブランチは、Ubuntu 22.04、CentOS Stream 9、RHEL 9、OpenMandriva 4.2、Gentoo、Fedora 36、Debian Testing/Unstable などのディストリビューションで使用されます。 これらのシステムのユーザーは、できるだけ早くアップデートをインストールすることをお勧めします (Debian、Ubuntu、RHEL、SUSE/openSUSE、Fedora、Arch)。 SUSE Linux Enterprise 15 SP4 および openSUSE Leap 15.4 では、OpenSSL 3.0 を含むパッケージがオプションで利用可能であり、システム パッケージは 1.1.1 ブランチを使用します。 Debian 1、Arch Linux、Void Linux、Ubuntu 11、Slackware、ALT Linux、RHEL 20.04、OpenWrt、Alpine Linux 8、および FreeBSD は OpenSSL 3.16.x ブランチに残ります。

出所: オープンネット.ru

コメントを追加します