Debian DLA-711-1 : curl セキュリティ更新

critical Nessus プラグイン ID 94941

概要

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

説明

CVE-2016-8615 : Cookie の状態が Cookie jar ファイルに書き込まれ、それが後で読み戻されて以降の要求に使用される場合、悪意のある HTTP サーバーが任意のドメインの新しい Cookie をその Cookie jar に挿入する可能性があります。この問題は、Cookie をメモリにロードする関数に関係します。この関数は、「fgets()」関数を使用して、指定されたファイルを行ごとに固定サイズのバッファに読み込みます。fgets() の呼び出しが小さすぎて行全体を宛先バッファに読み込めない場合、出力が切り捨てられます。この方法では、悪意のあるサーバーから送信された非常に長い Cookie (名前+値) がファイルに保存され、その後でその Cookie が部分的に読み取られてうまく細工されると、別のサーバーの別の Cookie として扱われる可能性があります。CVE-2016-8616 : 接続を再利用するときに、curl はユーザー名とパスワードを既存の接続と大文字と小文字を区別せずに比較していました。つまり、接続を範囲とした認証情報を持つプロトコルに適切な認証情報を持つ未使用の接続が存在する場合、正しいパスワードの大文字と小文字を区別しないバージョンを知っているとき、攻撃者はその接続を再利用できます。CVE-2016-8617 : libcurl の base64 エンコード関数では、出力バッファは insize のチェックなしで次のように割り当てられます : malloc( insize * 4 / 3 + 4 )。 ユーザー空間 (x86、ARM、x32 など) で 32 ビットアドレスを使用するシステムでは、insize が少なくとも 1GB のデータの場合、式の乗算はラップされます。これが発生すると、サイズの小さい出力バッファが割り当てられますが、結果全体が書き込まれるため、出力バッファの後のメモリが上書きされます。64ビットバージョンの「size_t」タイプのシステムはこの問題の影響を受けません。CVE-2016-8618 : 「curl_maprintf()」と呼ばれる32ビットの「size_t」変数を使用するシステムでは、安全ではない「size_t」乗算のために、libcurl API 関数が騙されて、二重解放を実行する可能性があります。この関数は、多くの状況で内部的にも使用されます。64ビットバージョンの「size_t」タイプのシステムはこの問題の影響を受けません。CVE-2016-8619 : curl の Kerberos 認証メカニズムの実装では、security.c の関数「read_data()」は、必要な krb5 構造を埋めるために使用されます。ソケットから長さフィールドの1つを読み取るとき、realloc() に渡される長さパラメーターが0に設定されていないことを確認できません。 CVE-2016-8621 : 「curl_getdate」が指定された日付文字列を数値のタイムスタンプに変換し、日付と時刻を表現するためにさまざまな形式と可能性をサポートします。基になる日付解析関数は、たとえば HTTP Cookie (リモートサーバーから受信される可能性がある) を解析するときにも内部的に使用され、条件付き HTTP 要求を実行するときに使用できます。CVE-2016-8622 : libcurl の URL percent-encoding デコード関数は、「curl_easy_unescape」という名前です。内部的に、この関数が 2GB を超える unscape 宛先バッファを割り当てるように作られた場合でも、符号付き32ビット整数変数でその新しい長さを返します。したがって、長さは切り捨てられるか、切り捨てられて負になります。その結果、ヒープベースのバッファの外部で libcurl が書き込まれる可能性があります。CVE-2016-8623 : libcurlは、異なるスレッドで同時に使用される複数 easy ハンドル間でユーザーが Cookie を共有することを明示的に許可します。サーバーに送信される Cookie が収集されると、マッチング関数がすべての Cookie を収集して送信し、その後すぐに Cookie のロックが解除されます。ただし、この関数は、名前、値、パスなどの元の文字列に戻る *references* を含むリストのみを返します。したがって、別のスレッドがすぐにロックを取得し、元の Cookie 構造体の1つとその文字列を解放する場合、 use-after-free が発生し、情報漏洩につながる可能性があります。別のスレッドが、別の HTTP 応答または API 呼び出しから Cookie のコンテンツを置き換える可能性もあります。CVE-2016-8624 : curlは、ホスト名の部分が「#」文字で終わる場合、URLの認証局コンポーネントを正しく解析せず、だまされて別のホストに接続する可能性がありました。たとえば、RFC に従う URL パーサーを使用し、curl を使用してドメインを要求する前に許可されたドメインをチェックする場合、これはセキュリティに影響する可能性があります。Debian 7 'Wheezy' では、これらの問題はバージョン 7.26.0-1+wheezy17 で修正されています。お使いの curl パッケージをアップグレードすることを推奨します。注 : Tenable Network Security は、前述の記述ブロックを DLA セキュリティアドバイザリから直接抽出しています。Tenableでは、新たな問題を持ち込まずに、できる限り自動的に整理して書式設定するようにしています。

ソリューション

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

参考資料

https://lists.debian.org/debian-lts-announce/2016/11/msg00018.html

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

プラグインの詳細

深刻度: Critical

ID: 94941

ファイル名: debian_DLA-711.nasl

バージョン: 2.8

タイプ: local

エージェント: unix

公開日: 2016/11/18

更新日: 2021/1/11

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

リスク情報

VPR

リスクファクター: Medium

スコア: 5.9

CVSS v2

リスクファクター: High

基本値: 7.5

現状値: 5.5

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

CVSS v3

リスクファクター: Critical

基本値: 9.8

現状値: 8.5

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

現状ベクトル: CVSS:3.0/E:U/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-dbg, p-cpe:/a:debian:debian_linux:libcurl3-gnutls, p-cpe:/a:debian:debian_linux:libcurl3-nss, p-cpe:/a:debian:debian_linux:libcurl4-gnutls-dev, p-cpe:/a:debian:debian_linux:libcurl4-nss-dev, p-cpe:/a:debian:debian_linux:libcurl4-openssl-dev, cpe:/o:debian:debian_linux:7.0

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

エクスプロイトの容易さ: No known exploits are available

パッチ公開日: 2016/11/17

脆弱性公開日: 2018/7/31

参照情報

CVE: CVE-2016-8615, CVE-2016-8616, CVE-2016-8617, CVE-2016-8618, CVE-2016-8619, CVE-2016-8621, CVE-2016-8622, CVE-2016-8623, CVE-2016-8624