orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

curlの脆弱性の件(CVE-2023-38545)メモ

 

過去最悪の脆弱性が、超有名なコマンドcurlで発見されたということで、巷で噂になっていました。あまりにも最悪と言うことで、修正版が公開される今日までは中身が秘密にされていたほどです。

 

forest.watch.impress.co.jp

 データ転送ライブラリ「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がこちら。

 

確かに、セグメンテーションフォルトしてますね。強制終了ならまだしも、他のアプリに影響を与えたり、不正なプログラムを実行したり、みたいなことも考えられます。

 

ちなみに

RHEL8以下には影響なし。良かった(個人的に)。RHEL9は影響を受けます。

https://access.redhat.com/security/cve/cve-2023-38545

 

他に何かわかったことがあれば追記していきます。