OpenSSLの脆弱性情報(High: CVE-2021-3711, Moderate: CVE-2021-3712 )と新バージョン(OpenSSL 1.1.1l)

こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。

08/25/2021 (JST) に予告どおりOpenSSLの脆弱性情報(High: CVE-2021-3711, Moderate: CVE-2021-3712 )が公開されています。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。




Priority

CVE番号影響するバージョンPriorityCVSS Score / CVSS Vector
CVE-2021-37111.1.1-1.1.1k

Vendor: High

Red Hat:8.1 Important

Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

CVE-2021-37121.0.2-1.0.2y, 1.1.1-1.1.1k

Vendor: High

Red Hat: 6.1 Moderate

Red Hat: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3711
    • SM2暗号復号化バッファーオーバーフローの可能性
    • 重要度 – High
    • 対象 – OpenSSL 1.1.1-1.1.1k
    • SM2暗号化されたデータを復号化する際に、アプリケーションはAPI関数EVP_PKEY_decrypt()を呼び出すことを期待されています。特定のアプリケーションはこの関数を2回呼び出しています。最初のエントリ時に”out”パラメータがNULLになり、終了時に”outlen”パラメータが複合のためにバッファサイズを保持する場合があります。アプリケーションは十分なサイズのバッファをアロケートしてEVP_PKEY_decrypt()を再び呼び出しますが、今度は非NULLな値を”out”パラメータに渡します。

      SM2暗号化コード実装のバグとは、最初のコールの際に保持されるバッファーサイズの計算が二回目のコールの際に必要とされるものよりも小さいことです。このことから、アプリケーションがEVP_PKEY_decrypt()の二回目を呼び出す際にバッファサイズが非常に小さくなってしまった場合にバッファーオーバーフローが発生します。

      悪意のある攻撃者がSM2コンテンツを複合させるためにアプリケーションに与えられた場合、攻撃者が選択したデータが最大62バイトオーバーフローし、アプリケーションの動作が変更されたりクラッシュする可能性があります。

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3712
    • ASN.1文字列処理におけるバッファーオーバーラン読み込みの可能性
    • 重要度 – Moderate
    • 対象 – OpenSSL 1.0.2-1.0.2y, 1.1.1-1.1.1k
    • ASN.1文字列はOpenSSL中で文字列データを保持するバッファとバッファ長を含むASN1_STRING()構造体として存在しています。これは通常のCの文字列がNUL(0)バイトで終了するようになっているのとは対象的です。

      また厳密な要件ではありませんが、OpenSSLの”d2i”関数(及び他の同様の関数)を使用してパースされるASN.1文字列及びASN1_STRING_set()関数で値が設定された文字列は、ASN1_STRING()構造体中でバイト配列がNULで終了されます。

      しかしながら、アプリケーションは直接ASN1_STRING構造体の”data”フィールドと”length”フィールドを設定することで、バイト配列がNULで終了されていない構造体を作ることができます。これはASN1_STRING_set()関数を使用して発生する場合もあります。

      幾つかのASN.1のデータを表示させるOpenSSL関数では、ASN1_STRINGバイトはNULで終了されていると仮定しており、アプリケーションが、ASN.1構造体を表示する場合でASN.1構造体がASN1_STRINGsによりNUL終了していない文字列を”data”フィールドに含んで構成された場合、バッファーオーバーラン読み込みを引き起こします。

      同じ事が認証局の名前処理中にも発生します(たとえば、証明書がOpenSSLパース関数を介してロードされず、アプリケーションによって直接作られ、証明書にNULで終了しないASN1_STRING()構造体が含まれている場合)。またこれは、 X509_get1_email(), X509_REQ_get1_email(), X509_get1_ocsp()でも発生する可能性があります。

      悪意のある攻撃者がアプリケーションにASN1_STRING()構造体を直接作らせて、影響を受けるOpenSSL関数の一つを介してそれを処理させた場合、クラッシュ(DoS攻撃)が発生する可能性があります。また、秘密鍵や気密性の高い平文などが開示される場合もあります。



対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteKatello、Spacewalk等を使うと管理が便利でしょう。

また、サービスの再起動が発生する場合には、peacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。


セキュリティ系連載案内

CM

こちらで小学生の勉強支援サイトをオープンしました。算数のプリント(都度、自動生成)が無料でダウンロードできます。コンテンツは未だ少ないですが、徐々に増やしていきます。

セミナー情報1

2021/09/13 18:30から、OSSセキュリティ技術の会 第九回勉強会を行います。

7/30にリリースされたKeycloak 15で、FAPI(Financial-Grade API)、CIBA(Client Initiated Backchannel Authentication)に対応しました(Certificateはまだですが…)。またDevice Flowにも対応しています。これを記念し、KeycloakのFAPI,CIBAの主要開発者もお招きして、「KeycloakのFAPI CIBA 対応記念の巻」と題して勉強会を行います。

Connpassのこちらがプログラム内容と申し込みの詳細になります。奮ってご参加下さい。

セミナー情報2

コンピュータセキュリティシンポジウム(CSS)2021併設のワークショップ、 OSSセキュリティ技術ワークショップ(OWS) 2021の企画講演セッション及び、 一般論文セッションの発表募集をさせていただきます。

今年もオンラインでの開催となり、OWSトラックの一般論文セッションの論文募集(申込締め切り: 2021年08月02日(月))と企画セッションを行いますので,ご投稿とご参加よろしくお願いいたします。

https://www.iwsec.org/ows/2021/


タイトルとURLをコピーしました