DebianDLA-2500-1:curlのセキュリティ更新

high Nessus プラグイン ID 144497

概要

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

説明

URL構文でデータを転送するためのコマンドラインツールまた使いやすいクライアント側のURL転送ライブラリであるcurlに、複数の脆弱性が発見されました。

CVE-2020-8284

curlがパッシブFTP転送を実行する際、最初にEPSVコマンドを試行し、サポートされていない場合は、PASVの使用にフォールバックします。
パッシブモードは、curlがデフォルトで使用するモードです。PASVコマンドへのサーバー応答には、実際のデータ転送を実行するためにクライアントが再接続(IPv4)するためのアドレスとポート番号が含まれます。これが、FTPプロトコルが機能するように設計されている方法です。悪意のあるサーバーがPASV応答を使用して、curlを所定のIPアドレスとポートに再接続するよう誘導することが可能です。この方法で、ポートスキャンやサービスバナー抽出の実行など、プライベートで開示されていないサービスに関する情報をcurlに抽出させる可能性があります。

応答のIPアドレス部分は、CURLOPT_FTP_SKIP_PASV_IPを以前の0Lではなく1Lにすることで、デフォルトで無視されるようになりました。これには、サーバーが、クライアントにコントロール接続が使用しているものとは異なるIPアドレスに再接続してもらう必要がある際、ユースケースのごく一部が破損する可能性があり、それらのCURLOPT_FTP_SKIP_PASV_IPを0Lに設定できるという、マイナーなデメリットがあります。同じことがコマンドラインツールにも当てはまります。

これにより、--no-ftp-skip-pasv-ipは、curlがサーバー応答のアドレスを無視しないように設定することが必要になる可能性があります。

CVE-2020-8285

libcurlはワイルドカード照合機能を提供します。これにより、(CURLOPT_CHUNK_BGN_FUNCTIONで設定された)コールバックは、libcurlが利用可能なすべてのエントリのリストを反復処理する際、ディレクトリの特定のエントリを処理する方法に関する情報をlibcurlに返すことができます。このコールバックがCURL_CHUNK_BGN_FUNC_SKIPを返す際、libcurlにそのファイルを処理しないように命令すると、libcurlの内部関数は、それ自体を再帰的に呼び出して、次のディレクトリエントリを処理します。十分な量のファイルエントリがあり、コールバックが十分な回数の「skip」を返す場合、libcurlはスタック空間を使い果たします。正確な量は当然、プラットフォーム、コンパイラ、その他の環境要因によって変化します。リモートディレクトリのコンテンツはスタックに保持されないため、攻撃者がスタックを上書きするデータを正確に制御することは難しいようです。しかし、サービス拒否はサーバーを制御する悪意を持つユーザーとして残ります。これらの前提で動作するlibcurlを使用するアプリケーションは、クラッシュを誘発する可能性があります。

内部関数が書き換えられ、再帰アプローチの代わりに通常ループをより適切な仕方で使用します。この方法では、スキップされるファイルの数に関係なく、スタック使用量は変わりません。

CVE-2020-8286

libcurlは、CURLOPT_SSL_VERIFYSTATUSオプションを通じて「OCSP stapling」を提供します。libcurlは設定されると、TLSハンドシェイクの一部としてサーバーが応答するOCSP応答を検証します。応答に問題がある場合には、TLSネゴシエーションは中止されます。同じ機能は、curlツールを使用する--cert-statusで有効にすることができます。OCSP応答検証の一部として、クライアントは応答が正しい証明書に対して設定されていることを検証する必要があります。OpenSSLをTLSバックエンドとして構築または使用するよう指示される際、この手順はlibcurlによって実行されませんでした。
この欠陥により、TLSサーバーを侵害した可能性のある攻撃者が、実際の応答ではなく、正常に見える偽のOCSP応答を提供する可能性があります。元の証明書が実際には失効しているかのようになります。

OCSP応答チェッカー機能は、証明書IDが正しいものであるかも検証するようになりました。

Debian 9 'Stretch'では、これらの問題はバージョン7.52.1-5+deb9u13で修正されています。

お使いのcurlパッケージをアップグレードすることを推奨します。

curlの詳細なセキュリティステータスについては、そのセキュリティトラッカーページを参照してください: https://security-tracker.debian.org/tracker/curl

注:Tenable Network Securityは、前述の記述ブロックをDLAセキュリティアドバイザリーから直接抽出しています。Tenableでは、新たな問題を持ち込まずに、できる限り自動的に整理して書式設定するようにしています。

ソリューション

影響を受けるパッケージをアップグレードしてください。

参考資料

https://lists.debian.org/debian-lts-announce/2020/12/msg00029.html

https://packages.debian.org/source/stretch/curl

https://security-tracker.debian.org/tracker/source-package/curl

プラグインの詳細

深刻度: High

ID: 144497

ファイル名: debian_DLA-2500.nasl

バージョン: 1.6

タイプ: local

エージェント: unix

公開日: 2020/12/21

更新日: 2024/1/31

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

リスク情報

VPR

リスクファクター: Medium

スコア: 4.4

CVSS v2

リスクファクター: Medium

基本値: 5

現状値: 3.9

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

CVSS スコアのソース: CVE-2020-8286

CVSS v3

リスクファクター: High

基本値: 7.5

現状値: 6.7

ベクトル: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

現状ベクトル: CVSS:3.0/E:P/RL:O/RC:C

脆弱性情報

CPE: p-cpe:/a:debian:debian_linux:curl, p-cpe:/a:debian:debian_linux:libcurl3, p-cpe:/a:debian:debian_linux:libcurl3-nss, cpe:/o:debian:debian_linux:9.0, p-cpe:/a:debian:debian_linux:libcurl4-gnutls-dev, p-cpe:/a:debian:debian_linux:libcurl3-dbg, p-cpe:/a:debian:debian_linux:libcurl3-gnutls, p-cpe:/a:debian:debian_linux:libcurl4-doc, p-cpe:/a:debian:debian_linux:libcurl4-nss-dev, p-cpe:/a:debian:debian_linux:libcurl4-openssl-dev

必要な KB アイテム: Host/local_checks_enabled, Host/Debian/release, Host/Debian/dpkg-l

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

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

パッチ公開日: 2020/12/18

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

参照情報

CVE: CVE-2020-8284, CVE-2020-8285, CVE-2020-8286

IAVA: 2020-A-0581