Squidbleed は、Squid ProxyのFTPゲートウェイに存在する
ヒープバッファオーバーリード脆弱性。Heartbleed (CVE-2014-0160) に類似したメモリリークを引き起こし、
プロキシの内部メモリに残留する他のユーザーのHTTPリクエスト(Authorization ヘッダー、Cookie、APIキー等)を攻撃者に漏洩させる。
1997年に導入された29年来のバグで、デフォルト構成の全Squidバージョンが影響を受ける。
修正は Squid 7.7 に含まれる。最も安全な暫定対策は FTPサポートの無効化。
| CVE番号 | CVE-2026-47729 |
|---|---|
| 通称 | Squidbleed |
| 公開日 | 2026-06-10 (公開ディスクロージャー) |
| CVSS v3.1 | 7.5 (High) |
| CVSS Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H |
| CWE | CWE-125: Out-of-bounds Read |
| CISA KEV | なし (2026-06-22現在) |
| 発見者 | Calif.io (AI "Claude Mythos Preview") |
| 修正バージョン | Squid 7.7 (7.6→7.7に訂正) |
| 修正コミット | 865a131c7d557e68c965043d98c2eccae26deef8 |
| プラットフォーム | バージョン | ステータス |
|---|---|---|
| Squid Proxy (全バージョン) | 〜 7.5 | ● 脆弱 |
| Debian bullseye | 4.13-10+deb11u6 | ● 脆弱 |
| Debian bookworm | 5.7-2+deb12u5 | ● 脆弱 |
| Debian trixie | 6.13-2+deb13u1 | ● 脆弱 |
| Debian sid / forky | 7.6-1 | ○ 修正済み |
| Ubuntu | 4.10-1ubuntu1 系 | ● 脆弱 |
| Amazon Linux 2 / 2023 | squid | ● Pending Fix |
| SUSE Linux Enterprise | 複数バージョン | ● Affected |
| Squid Proxy 7.7+ | 7.7〜 | ○ 修正済み |
FTPディレクトリ一覧パーサー (src/clients/FtpGateway.cc) において、
C標準ライブラリの strchr() 関数のヌル終端文字('\0')に関する仕様を誤って扱っているため、
バッファ境界を超えた読み出しが発生する。
C11 §7.24.5.2 の仕様: strchr はヌル終端文字を文字列の一部として扱う。
つまり strchr("abc", '\0') はヌル終端文字の位置を指すポインタを返す(非NULL)。
これにより、ファイル名が存在しないFTP LIST応答行で、++copyFrom がバッファ終端を超えて実行され続ける。
修正の本質: *copyFrom && を追加し、ヌル終端文字に到達した時点でループ/条件を早期脱出させる。
MEM_4K_BUF) に格納されるLIST 応答を送信strchr のオーバーリードにより、バッファ終端を超えて読み進む — ヒープオーバーリード発生Authorization ヘッダー、Cookie、APIキー、フォームデータ等が含まれる可能性master/v8 ブランチにマージ。| 公開PoC | あり(Calif.ioブログで概念実証コードが公開) |
|---|---|
| Metasploitモジュール | なし(2026-06-22現在) |
| Exploit成熟度 | PoC(信頼性の高いメモリリーク実証済み) |
| 実被害 | 現時点で確認なし |
1. Squidプロキシ経由で攻撃者制御のFTPサーバー(ポート21)に接続
2. FTPサーバーからファイル名を含まない LIST 応答を返す:
3. FTPディレクトリ一覧の「ファイル名」フィールドに異常なデータ(他のユーザーのHTTPヘッダー等)が含まれていれば脆弱
sudo apt update && sudo apt install squidsquid.conf の Safe_ports からポート21を削除access.log 中の ftp:// リクエストをアラート対象にする| 修正コミット | 865a131c7d557e68c965043d98c2eccae26deef8 |
|---|---|
| タグ | SQUID_7_6 |
| 変更ファイル | src/clients/FtpGateway.cc |
| 変更内容 | strchr() の前後に *copyFrom && ヌルチェックを追加 |
| 根本原因分類 | Missing input validation (ヌル終端文字の検証欠落) |
| GitHub | squid-cache/squid@865a131 |