広く使われているオープンソースのプロキシ(通信を中継するサーバー)「Squid」に、他人の通信内容を盗み見できる脆弱性が見つかりました。セキュリティ企業Calif.ioが6月に公表したもので、「Squidbleed」(CVE-2026-47729)と名付けられています。原因となったコードは1997年に書かれ、29年ものあいだ誰にも気づかれずに残っていました。発見の決め手になったのは、Anthropicが開発するAIモデル「Claude」です。

「Squidbleed」とは何か

Squidbleedは、Squidが使っているメモリの一部を、本来アクセスできないはずの相手に読み取られてしまう脆弱性です。名前は、2014年に大きな話題となった「Heartbleed」に由来します。メモリの中身が同じように漏れ出すためです。

漏れるのは、同じSquidを経由している別の利用者の通信データです。暗号化されていないHTTP通信であれば、そこに含まれるパスワードやセッショントークン(ログイン状態を保つための認証情報)まで盗み取られる恐れがあります。技術的には「ヒープオーバーリード」(プログラムが確保したメモリ領域の外側まで読み出してしまう不具合)に分類されます。

発端は1997年に書かれた1行

問題があったのは、SquidがFTP(ファイル転送の仕組み)のディレクトリ一覧を解析する部分です。古い機器が余分な空白を付けてくる仕様に対応するため、空白を読み飛ばす次のような処理が書かれていました。

while (strchr(w_space, *copyFrom)) ++copyFrom;

ここで攻撃者側のFTPサーバーが、ファイル名を含まない中途半端な一覧行を返すと、読み取り位置が文字列の終わりを示す「ヌル終端」に達します。C言語の文字検索関数であるstrchrは、この終端記号までも検索対象の一部として扱うため、本来返すべきNULLではなくポインタを返してしまいます。結果としてループが止まらず、確保したメモリの外側へと読み進めてしまうのです。

そのはみ出した領域を、Squidは「ファイル名」として攻撃者へ送り返します。Squidは解放したメモリを中身を消さずに再利用するため、直前まで別の利用者のHTTPリクエストが入っていた領域が、そっくり攻撃者の手元に届いてしまう仕組みです。

攻撃が成立する条件

とはいえ、誰でも無条件に悪用できるわけではありません。攻撃できるのは、そのプロキシの利用を許可された内部の人物に限られます。学校や職場、公衆Wi-Fiなど、複数人で1台のプロキシを共有する環境が主な想定です。

漏れるのはSquidが中身を読める通信だけで、通常のHTTPS通信は暗号化されたトンネルとして素通しするため対象外です。さらに攻撃者は、プロキシから到達できるFTPサーバーを自分で用意する必要があります。ただし、FTP機能と通信ポート(21番)はSquidの初期設定で有効になっているため、条件は決して特殊とは言えません。

AIが見抜いた「29年前の見落とし」

このバグを最初に指摘したのが、AnthropicのAIモデル「Claude Mythos Preview」でした。Calif.ioは、防御を目的としたセキュリティ研究プロジェクト「Project Glasswing」でこのモデルを使い、SquidのFTP処理を調べさせたところ、問題のstrchrの癖をほぼ即座に見抜いたといいます。

人手による29年分のコードレビューや監査をすり抜けてきたわずか1行を、AIがあっさり見つけた形です。こうした「解析処理に埋もれたバグ」は、動画処理ライブラリのFFmpegなど他のソフトウェアでもAIによって次々と発見されています。Calif.ioは、SquidのFTPコードにまだ同種の見落としが残っている可能性も示唆しています。

対策と深刻度

対処法は2つあります。1つはSquidを修正版へ更新することです。修正自体は、問題のstrchrを呼び出す前にヌル終端かどうかを確認する小さなもので、開発版には4月、正式なv7系には5月に取り込まれました。ただし、どのバージョンから修正が入ったかは開発者の間でも情報が二転三転しています。更新後はバージョン番号だけを頼りにせず、該当コードが実際に直っているかを確認するのが確実です。

もう1つは、そもそもFTP機能を無効にしてしまう方法です。主要ブラウザのChromiumはすでにFTP対応を廃止しており、現在ではFTPを使う場面はほとんどありません。研究者もこちらを勧めています。

深刻度はCVSSで6.5の「中程度」と評価されています。攻撃にはプロキシの利用権限が必要で、影響も情報漏えいに限られ、データの改ざんやサービス停止は起こさないためです。実証コードはすでに公開されていますが、現時点で実際の攻撃は確認されていません。

まとめ

Squidbleedは、成立条件こそ限られるものの、29年間も潜み続けた見落としを突く厄介な脆弱性です。同時に、人間の目が長年見逃してきたたった1行を、AIが即座に見抜いたという点でも注目を集めました。セキュリティ調査にAIを活用する流れを象徴する一件と言えるでしょう。Squidを運用している場合は、修正版への更新か、FTPが不要であればその無効化を検討しておきたいところです。