過去最悪の脆弱性が、超有名なコマンドcurlで発見されたということで、巷で噂になっていました。あまりにも最悪と言うことで、修正版が公開される今日までは中身が秘密にされていたほどです。
データ転送ライブラリ「curl」が10月11日(日本時間)、v8.4.0へとアップデートされた。以下の脆弱性に対処したセキュリティアップデートとなっている。
今回のアップデートで修正された脆弱性は、以下の2件(括弧内は深刻度の評価)。
CVE-2023-38545:SOCKS5のヒープバッファーオーバーフロー。「libcurl 7.69.0」およびそれ以降、「libcurl」と「curl」ツールの両方に影響(High)
CVE-2023-38546:クッキーインジェクション。「libcurl 7.9.1」およびそれ以降、「libcurl」にのみ影響(Low)
この脆弱性の中身ですが、以下が原文です。
curl - SOCKS5 heap buffer overflow - CVE-2023-38545
で英語なのでざっくり説明すると、
・curlからsocks proxy経由でサーバー接続できる機能がある。
・「socks proxyサーバー経由でつなぐ宛先(socks proxyサーバーの宛先ではない)」に指定したホスト名が、255バイト以上あるときにはDNSサーバーに名前解決に行かず、ローカルで名前解決するようになっていた。
・ローカルで名前解決するときに、文字列をローカルのバッファーに渡すが、バッファーオーバーフローを起こしてしまうバグがある。
ということらしいです。
あと、原作者の記事も載せておきます。
How I made a heap overflow in curl | daniel.haxx.se
「そんな長い名前を、ローカルで名前解決なんかしなくて良かったじゃん・・」って後悔してますね。
また、再現した感じのPostがこちら。
CVE-2023-38545
— remy🐀 (@_mattata) October 11, 2023
Tomorrow (today) gonna be interesting one. We'll see how this goes.https://t.co/BRyqkNDNFJ pic.twitter.com/Q3H33dLA5v
確かに、セグメンテーションフォルトしてますね。強制終了ならまだしも、他のアプリに影響を与えたり、不正なプログラムを実行したり、みたいなことも考えられます。
ちなみに
RHEL8以下には影響なし。良かった(個人的に)。RHEL9は影響を受けます。
https://access.redhat.com/security/cve/cve-2023-38545
他に何かわかったことがあれば追記していきます。