FreeBSD:cURL -- 複数の脆弱性(6bff5ca6-b61a-11ea-aef4-08002728f74c)

high Nessus プラグイン ID 137792

Language:

概要

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

説明

curlのセキュリティ問題:

CVE-2020-8169: HTTPリダイレクトのDNSでの部分的なパスワード漏洩

libcurlが騙されて、ホスト名を解決する前にホスト名の先頭にパスワードの一部を追加する可能性があり、これにより部分的なパスワードがネットワーク上およびDNSサーバーに漏洩する可能性があります。

libcurlは、Basic、Digest、NTLMなどのHTTP認証に使用されるHTTPリソースをリクエストする際に、HTTP認証用のユーザー名とパスワードを与えられる可能性があります。認証情報は、CURLOPT_USERPWDとともに、またはCURLOPT_USERNAMEとCURLOPT_PASSWORDで別々に設定されます。重要な詳細: これらの文字列は、プレーンなC文字列としてlibcurlに与えられ、URLエンコードされることが想定されていません。

さらに、libcurlでは、次の標準的なRFC 3986形式を使用して、認証情報をURLに設定することもできます: http://user:password@host/path。
この場合、名前とパスワードはURLエンコードされ、URLに表示されます。

オプションが設定されると、URLで設定された認証情報をオーバーライドします。

内部的には、これは「URLオブジェクト」に認証情報を保存することで処理されるため、この単一のURLに関連して保存されるのは、認証情報の単一のセットのみです。

libcurlがHTTP転送の相対リダイレクト(絶対URLリダイレクトではなく)を処理するとき、サーバーは新しいパスをクライアントに送信するだけで、そのパスは既存のURLに適用されます。
絶対URLの先頭にある相対パスの「適用」は、まずlibcurlが持っているすべてのコンポーネントから完全な絶対URLを生成することにより実行され、次にリダイレクトを適用し、最後にURLを別のコンポーネントに再び分解します。

このセキュリティの脆弱性は、上記のcurl_easy_setoptオプションの1つを使用して設定したときに、curlが資格情報データを正しくURLエンコードしなかったことが原因です。これにより、リダイレクトを行うときにcurlが不適切にフォーマットされた完全なURLを生成し、URLの最終的な再解析が不適切になり、パスワードフィールドの一部をホスト名に属するものと誤って見なします。

その後、間違ったホスト名が名前解決の検索で使用され、ネットワーク上(平文のDNSが使用された場合)、特に使用されたDNSサーバーに、平文のホスト名と部分的なパスワードが漏洩する可能性があります。

CVE-2020-8177: -Jを使用したcurl上書きローカルファイル

同じコマンドラインで-J(--remote-header-name)および-i(--include)を使用する場合、悪意のあるサーバーによりcurlが騙されて、ローカルファイルを上書きする可能性があります。

コマンドラインツールは、Content-Dispositionに存在するファイル名を使用してリモートファイルを保存する-Jオプションを提供します: 応答ヘッダー。その後、curlは、現在のディレクトリにすでに存在する場合、同じ名前を使用する既存のローカルファイルの上書きを拒否します。

-Jフラグは応答本文を保存するように設計されているため、-iと一緒には動作せず、これを禁止するロジックが存在します。ただし、このチェックには欠陥があり、オプションが逆の順序で使用されているかどうかを適切にチェックしていません: 最初に-Jを使用し、次に-iを使用することが、誤って受け入れられました。

この間違いの結果、ローカルファイルを回避するためのチェックが本文データの受信時に最初に行われるため、着信HTTPヘッダーが存在する場合、これがローカルファイルを上書きする可能性がありました。また、上記の誤りにより、すでにその時間までにヘッダーを受信および保存していました。

最初の本文バイトが到着したときに保存を中止するため、保存されたファイルは、それに追加される応答ヘッダーのみを取得します。ただし、悪意のあるサーバーは、最初のCRLF-CRLFシーケンスが表示されるまで、ヘッダーとcurlがこのように保存するため、事実上何でも返信させることができます。

(有効にするためには、-Jを-Oと組み合わせて使用する必要があることにも、注意してください。)

ソリューション

影響を受けるパッケージを更新してください。

参考資料

https://curl.haxx.se/docs/security.html

https://curl.haxx.se/docs/CVE-2020-8169.html

https://curl.haxx.se/docs/CVE-2020-8177.html

http://www.nessus.org/u?3af36dd0

プラグインの詳細

深刻度: High

ID: 137792

ファイル名: freebsd_pkg_6bff5ca6b61a11eaaef408002728f74c.nasl

バージョン: 1.7

タイプ: local

公開日: 2020/6/25

更新日: 2024/3/6

サポートされているセンサー: Nessus

リスク情報

VPR

リスクファクター: Medium

スコア: 6.7

CVSS v2

リスクファクター: Medium

基本値: 5

現状値: 3.9

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

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

CVSS v3

リスクファクター: High

基本値: 7.8

現状値: 7

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

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

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

脆弱性情報

CPE: p-cpe:/a:freebsd:freebsd:curl, cpe:/o:freebsd:freebsd

必要な KB アイテム: Host/local_checks_enabled, Host/FreeBSD/release, Host/FreeBSD/pkg_info

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

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

パッチ公開日: 2020/6/24

脆弱性公開日: 2020/6/24

参照情報

CVE: CVE-2020-8169, CVE-2020-8177

IAVA: 2020-A-0291-S