こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
12/09/2020にcurlの複数の脆弱性情報(Low: CVE-2020-8284, Medium: CVE-2020-8285, CVE-2020-8286 )が公開されています。こちらではこの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
[過去の関連リンク(最新5件)]
curlの脆弱性情報(Medium: CVE-2019-5481, CVE-2019-5482)
curlの脆弱性情報(Medium: CVE-2018-16890, High: CVE-2019-3822, Low: CVE-2019-3823)
curlの複数の脆弱性情報(Low: CVE-2018-16839, CVE-2018-16840, CVE-2018-16842)
curlに複数の脆弱性(CVE-2018-1000300, CVE-2018-1000301)
curlの複数の脆弱性(CVE-2018-1000120, CVE-2018-1000121, CVE-2018-1000122) — | サイオスOSS | サイオステクノロジー
curlに複数の脆弱性(CVE-2017-8816, CVE-2017-8817, CVE-2017-8818) — | サイオスOSS | サイオステクノロジー
Priority
Priority
CVE番号 | 影響するバージョン | Priority | CVSS Score / CVSS Vector |
---|---|---|---|
CVE-2020-8284 | 4.0<=libcurl<=7.73.0 | Vendor: Low | |
CVE-2020-8285 | 7.21.0<=libcurl<=7.73.0 | Vendor: Medium | |
CVE-2020-8286 | 7.41.0<=libcurl<=7.73.0 | Vendor: Medium |
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8284
- curlがFTP転送をパッシブモードで行う際には、最初にEPSVコマンドを実行しそれがサポートされていない場合にはPASVを使うようにしています。パッシブモードはcrulではデフォルトになっています。
PASVコマンドのサーバ側のレスポンスにはクライアントがデータ転送のために接続する(IPv4)アドレスとポート番号が含まれています。
悪意のあるサーバはPASVへのレスポンスを使ってcrulをだまして特定のIPアドレスとポートに接続させることが出来ます。これにより、ポートスキャンやサービスバナー抽出など、他の方法では開示されていない情報をcurlに抽出させる可能性があります。
curlがユーザにより与えられたURLを操作する場合、ユーザがそれを悪用して悪意のあるFTPサーバーインスタンスにURLを渡すことが出来ます。
- curlがFTP転送をパッシブモードで行う際には、最初にEPSVコマンドを実行しそれがサポートされていない場合にはPASVを使うようにしています。パッシブモードはcrulではデフォルトになっています。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8285
- libcurlは、libcurlが使用可能な全てのエントリのリストを反復処理する際に、コールバック(CURLOPT_CHUNK_BGN_FUNCTIONで設定)がディレクトリ内の特定のエントリを処理する方法をlibcurlに情報を返すワイルドマッチング機能を提供します。
このコールバックがCURL_CHUNK_BGN_FUNC_SKIPを返すと、libcurlにそのファイルを処理しないように指示し、libcurlの内部関数は自信を再帰的に呼び出して次のディレクトリエントリを処理します。
充分な量のファイルエントリがある場合、コールバックが充分な回数の”skip”を返すため、libcurlはスタックスペースを使い果たし、libcurlを使っているアプリにDoSを引き起こす事ができる可能性があります。
- libcurlは、libcurlが使用可能な全てのエントリのリストを反復処理する際に、コールバック(CURLOPT_CHUNK_BGN_FUNCTIONで設定)がディレクトリ内の特定のエントリを処理する方法をlibcurlに情報を返すワイルドマッチング機能を提供します。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8286
- libcurlは、CURLOPT_SSL_VERIFYSTATUSオプションを通して”OCSPステープリング”機能を提供します。これを設定すると、libcurlはサーバがTLSハンドシェイクの一部として応答するOCSP応答を検証します。
OCSP応答検証の一部として、クライアントは応答が正しい証明書に実際に設定されていることを検証する必要があります。この手順はOpenSSLをTLSのバックエンドとして使用するようにしていたばあいに正しく機能していませんでした。
この欠陥に寄り、TLSサーバに侵入した攻撃者は、元の証明書が実際に取り消されたように見える不正なOCSPレスポンスを返すことができる可能性があります。
- libcurlは、CURLOPT_SSL_VERIFYSTATUSオプションを通して”OCSPステープリング”機能を提供します。これを設定すると、libcurlはサーバがTLSハンドシェイクの一部として応答するOCSP応答を検証します。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
https://security-tracker.debian.org/tracker/CVE-2020-8284
- Red Hat Enterprise Linux/CentOS
https://access.redhat.com/security/cve/CVE-2020-8284
- Ubuntu
https://people.canonical.com/~ubuntu-security/cve/2020/CVE-2020-8284.html
https://people.canonical.com/~ubuntu-security/cve/2020/CVE-2020-8285.html
https://people.canonical.com/~ubuntu-security/cve/2020/CVE-2020-8286.html
- SUSE/openSUSE
https://www.suse.com/security/cve/CVE-2020-8284.html
対処方法
対処は各ディストリビューションの情報に従ってください。
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2018のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。