curlに複数の脆弱性(CVE-2018-1000300, CVE-2018-1000301)




5/16/2018にcurlに複数の脆弱性情報(CVE-2018-1000300, CVE-2018-1000301)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。


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

5/16/2018にcurlに複数の脆弱性情報(CVE-2018-1000300, CVE-2018-1000301)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。



Priority

Important(CVE-2018-1000300)/Moderate(CVE-2018-1000301)

修正方法

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

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

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000300
    • 長いFTPサーバコマンド応答を閉じる際のヒープベースのメモリバッファーオーバーフローの可能性

    • 重要度 - Important

    • CWE - CWE-122: ヒープベースバッファーオーバーフロー

    • 影響を受けるバージョン : curl 7.54.1 から 7.59.0

    • FTP転送を行っている時、curlはFTP接続がシャットダウンした際に、元のcurlのhandleが既に削除されているため使われる、"closure handle"領域を内部でキープしています。

      FTPサーバ応答データは元の転送からキャッシュされますが"closuer handle"にあろけーとされているデフォルトのバッファサイズ(16KB)よりも大きくなるかもしれず、その際にバッファーオーバー書き込みが発生します。書き込みのコンテンツとサイズはサーバによってコントロールされます。

      このシチュエーションはコードのasser()で検知することが出来ますが、勿論デバッグビルドされている場合のみ検知が可能です。このバグは悪意のあるサーバから以外は非常に発生しにくいはずです。

      現時点ではこの問題を用いたエクスプロイトは見つかっていません。

  • http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000301
    • RTSP(Real Time Streaming Protocol)の悪意のあるヘッダーによるバッファーオーバー読み込みの可能性

    • 重要度 - Moderate

    • CWE - CWE-126: バッファーオーバー読み込み

    • 影響を受けるバージョン : curl 7.29.0 から 7.59.0

    • サーバがRTSPレスポンスをcurlに返す際に、データはヘッダがセットされた状態で開始されます。curlはデータをパースして適切に扱い、シグナルが"body"となるパートが開始された際にヘッダ部分が終わりだと扱います。

      応答をヘッダに分割するこの関数はcurl_http_readwrite_headers()と呼ばれ、バッファ内でヘッダを見つけることができない状況では、バッファの先頭ではなくバッファを指すポインタを残すことになります。 その場合、ポインタが使用するメモリのフルバッファサイズ分を指していることを想定していると、後でバッファが読み込まれなくなる可能性があります。

      これは潜在的に情報漏えいにつながりますが、殆どの場合、サーバがこの欠陥を引き起こす場合にはアプリケーションがクラッシュ/サービス拒否状態になります。

      現時点ではこの問題を用いたエクスプロイトは見つかっていません。


主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください


対処方法

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

また、OSの再起動が発生しますので、peacemakerなどOSSのクラスタ製品を使うとサービス断の時間を最小限にすることが出来ます。

[参考]

FTP shutdown response buffer overflow(https://curl.haxx.se/docs/adv_2018-82c2.html)

RTSP bad headers buffer over-read(https://curl.haxx.se/docs/adv_2018-b138.html)

セキュリティ系連載案内

前へ

Linux Kernel 等の脆弱性(CVE-2018-8897, CVE-2018-1087)

次へ

Tomcat 7.x/8.x/9.xに関しての脆弱性( CVE-2018-8014 : Low )