SquidのFTPゲートウェイの境界外読み取りCVE-2026-47729
Squidプロジェクトの2026年6月23日のアドバイザリによると、SquidのFTPゲートウェイに境界外読み取りの脆弱性CVE-2026-47729があり、信頼されたクライアントが不正な挙動のFTPサーバーにSquid経由でアクセスすると、無関係なランダムなトランザクションから読み取りを行える[1]。Red Hatと発見者のCalif.ioは、影響が平文のHTTPとTLS終端の構成に限られるとした[10、17]。
脆弱性の内容
アドバイザリは原因を、入力の構文上の正しさの検証が不適切なバグと説明した[1]。CVE記録の説明では、TypeA・TypeB形式のディレクトリ一覧の項目で日付の後にファイル名が無いと、解析が入力バッファの中に限られていなかった[15]。
| 項目 | 値 | 資料 |
|---|---|---|
| CVSS 3.1の基本値 | 6.5(CVE記録、Red Hat、SUSE) | [10、11、15] |
| CVSS 3.1のベクトル(Red Hat) | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N | [10] |
| 重大度 | MEDIUM(CVE記録)、Moderate(Red Hat)、moderate(SUSE) | [10、11、15] |
| Ubuntuの優先度 | Medium | [12] |
| Amazon Linuxの評価 | CVSS 3.1の基本値3.1(AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N)、重大度Low | [14] |
| CWE | CWE-125(Out-of-bounds Read)、CWE-1289 | [15] |
アドバイザリの謝辞によると、この脆弱性はAisle Research、Anthropic Researchと協力したCalif.io、CTF.aeの研究者がそれぞれ独立に発見・報告した[1]。修正者には、The Measurement Factoryに所属する人物の名前があった[1]。
読み出しの仕組み
Calif.ioは技術解説で、この脆弱性をHeartbleed型のSquidbleedと呼び、既定の設定のすべての版のSquidから内部メモリを漏らすと書いた[17]。Claude Mythos PreviewにSquidを調べさせ、29年前のバグを見つけたとした[17]。バグはSquidのGitHubリポジトリの全コミット履歴より前からあり、1997年1月18日のコミットbb97dd37aの変更履歴に、NetWareサーバーを認識してファイル名の前の空白を飛ばす修正がある[17]。
Calif.ioの6月18日の技術解説では、Squidは既定でFTPに対応し、FTPサーバーへの接続時にHTMLのファイル一覧を生成する[17]。FTPのバナーに「NetWare」を含むと、空白を飛ばすループが働く[17]。タイムスタンプの後にファイル名の無い行では、strchrが終端のNUL文字を文字列の一部として扱ってNULLを返さず、読み取り位置がバッファの外へ進む[17]。バッファの外のデータは別のSquidの利用者のものでありえ、ディレクトリ一覧のファイル名として攻撃者に返る[17]。
Calif.ioによると、Squidは解放したバッファを大きさ別のフリーリストに戻して再利用し、内容を消去しないため、古い内容が残っている[17]。Squid 7.xでは、HTTPリクエストの大半(4KBを超えるものを除く)がMEM_4K_BUFに置かれる[17]。それより前の版では受信したHTTPリクエストは別のプールに置かれるが、上流へ転送する2KBを超えるリクエストはMEM_4K_BUFに移されると書いた[17]。Calif.ioは、同じプロキシを使う攻撃者が被害者のAuthorizationヘッダーを漏らせることを実証し、PoCをGitHubで公開した[17]。
悪用の前提条件
Red Hatは、悪用には攻撃者がSquidプロキシの有効なアカウントを持ち、プロキシからポート21で届くFTPサーバーを支配している必要があるとした[10]。Calif.ioは技術解説で、FTPは既定で有効で、ポート21は既定のSafe_portsのaclに含まれるため、特別な設定は要らないと書いた[17]。攻撃者は、プロキシから届くFTPサーバーを支配するだけでよい[17]。
Horizon3.aiの6月24日の解説では、メモリに複数の利用者の通信が含まれうるため、共有のプロキシの環境が最も露出する[18]。Horizon3.aiは、企業・教育機関・宿泊施設・マネージドサービス・交通・公衆Wi-FiでSquidを運用する組織に、露出を確かめるよう求めた[18]。
時系列
| 日付 | 主体 | 内容 | 資料 |
|---|---|---|---|
| 2026年 | Aisle Research | 最初の報告をした | [1] |
| 2026年 | Calif.io | 報告した | [1] |
| 2026年 | - | 修正がmaster/v8に取り込まれた | [17] |
| 2026年 | CTF.ae | 報告した | [1] |
| 2026年 | - | パッチが公開された | [1] |
| 2026年 | - | CVE番号が予約された | [15] |
| 2026年 | Squidプロジェクト | Squid 7.6を公開した | [2] |
| 2026年 | Squidプロジェクト | oss-securityで、CVE-2026-47729とCVE-2026-50012の禁止期間(エンバーゴ)の終了を告げた | [4] |
| 2026年 | Squidプロジェクト | oss-securityで、CVE-2026-47729の修正は7.7に入ると訂正した | [5] |
| 2026年 | Calif.io | 技術解説を公開した | [17] |
| 2026年 | Debian | DSA-6360-1でsquidを更新した | [8] |
| 2026年 | Squidプロジェクト | squid-announceにアドバイザリSQUID-2026:4を投稿した | [1] |
| 2026年 | CVE Program・NVD | CVE記録とNVDの記録を公開した | [15、16] |
対象の製品と版
| 製品 | 影響を受ける版 | 修正版 | 資料 |
|---|---|---|---|
| Squid | 3.x(3.5.27まで)、4.x(4.17まで)、5.x(5.9まで)、6.x(6.14まで)、7.x(7.5まで) | 7.6〔注1〕〔注2〕 | [1] |
アドバイザリは、3.5.28より古いSquidは試験しておらず、脆弱とみなすべきだとした[1]。NVDはCPEで、squid-cacheのsquidの7.6未満を脆弱と分析した[16]。
配布元の対応
DebianはDSA-6360-1で、CVE-2026-33515・CVE-2026-33526・CVE-2026-47729・CVE-2026-50012を対象にsquidを更新し、情報漏えいかサービス拒否に至りうるとした[8]。Ubuntuは10月20日のUSN-8941-1で、SquidがFTPのディレクトリ一覧の解析を誤り、遠隔の攻撃者が機微な情報を得うると説明した[13]。SUSEは、この問題の全体の状態をPendingとした[11]。
| 配布元 | 状態 | 修正版・アドバイザリ | 資料 |
|---|---|---|---|
| Debian(bullseye) | fixed | 4.13-10+deb11u7(DLA-4697-1) | [7] |
| Debian(bookworm) | 通常版の5.7-2+deb12u5はvulnerable、securityはfixed | 5.7-2+deb12u6(DLA-4697-1) | [7] |
| Debian(trixie) | fixed | 6.13-2+deb13u2(DSA-6360-1) | [7、8] |
| Debian(unstable) | fixed | 7.6-1 | [7] |
| Ubuntu(26.04 LTS) | Fixed | 7.2-2ubuntu2.2 | [12] |
| Ubuntu(25.10) | Fixed | 6.14-0ubuntu0.25.10.4 | [12] |
| Ubuntu(24.04 LTS) | Fixed | 6.14-0ubuntu0.24.04.4 | [12] |
| Ubuntu(22.04 LTS) | Fixed | 5.9-0ubuntu0.22.04.7 | [12] |
| Ubuntu(20.04 LTS) | Fixed(Ubuntu Pro) | 4.10-1ubuntu1.13+esm3(USN-8941-1) | [12、13] |
| Ubuntu(18.04 LTSのsquid3) | Fixed(Ubuntu Pro) | 3.5.27-1ubuntu1.14+esm6(USN-8941-1) | [12、13] |
| Ubuntu(16.04 LTSのsquid3) | Fixed(Ubuntu Pro、Legacy Support) | 3.5.12-1ubuntu7.16+esm7(USN-8941-1) | [12、13] |
| Ubuntu(26.10) | Not affected | - | [12] |
| SUSE(SLES 15 SP4/SP5のLTSSほか) | 修正パッケージあり | squid >= 5.7-150400.3.41.1(SUSE-SU-2026:4909-1) | [11] |
| SUSE(SLES 15 SP6-LTSS・SP7) | 修正パッケージあり | squid >= 6.14-150600.3.20.1(SUSE-SU-2026:4621-1) | [11] |
| SUSE(SLES 16.0) | 修正パッケージあり | squid >= 6.14-160000.1.1 | [11] |
| Red Hat(RHEL 6・7・8・9・10。squid34・squid:4を含む) | Fix deferred | - | [10] |
| Amazon Linux(Amazon Linux 2・2023) | No Fix Planned | - | [14] |
| Amazon Linux(Amazon Linux 2027 Preview) | Not Affected | - | [14] |
悪用の状況
Horizon3.aiは解説で、隣接するメモリの資格情報・Cookie・APIキー・セッショントークンなど、平文のHTTPデータが露出しうるとした[18]。執筆時に、実環境での悪用の確認は公に報告されていないとも書いた[18]。
Greenboneの7月9日の脅威報告では、公開のPoCと完全な技術説明はあるが、実環境での悪用は報告されていない[19]。
CISAのADP(Vulnrichment)は、CVE記録のSSVCで悪用を「none」、自動化を「no」、技術的影響を「partial」と評価した[15]。
修正と回避策
Squidチームは7.6の告知で、7.5からの主な変更を、HTTP・ピアダイジェスト・エラーページ・FTP制御チャネルのプロトコルの解析のバグ修正と移植性の修正と説明した[2]。以前の版の全利用者に、7.6への更新を勧めた[2]。
開発元のoss-securityへの投稿によると、7.6はCVE-2026-47729と、cache digestに対するヒープバッファオーバーフローCVE-2026-50012の修正を含む[4]。正式なアドバイザリは文面の推敲を待っており、数日内の告知を見込んだ[4]。禁止期間が終わり、追加の詳細や攻撃が他から出てくるおそれがあるため、この要約を出したと説明した[4]。
Squidプロジェクトは、GitHubのリポジトリにもセキュリティアドバイザリを掲載した[6]。squid-announceのアドバイザリには、修正の入手と回避策の記載がある[1]。
- 安定版向けのパッチをパッチアーカイブで示し、Squid 7向けにはコミット865a131c7d557e68c965043d98c2eccae26deef8のパッチを挙げた[1]。
- パッケージ化されたSquidの利用者には、更新パッケージの提供状況をパッケージの提供元に確かめるよう求めた[1]。
- 回避策として、FTPプロトコルを対象にしたaclとhttp_access denyの設定を、squid.confの独自の「http_access allow」の行より上に置くよう示した[1]。
- ftp_allowlistのaclは、信頼できるサーバーへの一部のFTPアクセスを許す必要がある利用者向けの任意の設定で、必要でなければ使わないのが最善の回避策だとした[1]。
Calif.ioの技術解説によると、修正はstrchrの呼び出しの前に終端文字を確かめる変更だった[17]。Calif.ioとGreenboneは、FTPを必要としない環境での緩和策にFTPの無効化を挙げた[17、19]。Red Hatの緩和策は、FTPが不要ならプロキシでFTPを拒否し、必要なら信頼できる宛先のドメインだけにFTPを許す設定である[10]。
Horizon3.aiが挙げた緩和策は、FTPの無効化、信頼できないFTPサーバーへのアクセスの制限、外向きのTCP 21番の遮断だった[18]。Horizon3.aiは、版の番号だけに頼らず、OS・機器・ディストリビューションの提供元を通じて修正の状況を確かめるよう勧めた[18]。
未公表の事項
- 影響を受けるSquidの設置数
- Red Hatの配布版のsquidの修正の時期
- 6月15日の訂正(修正は7.7に入る)と、アドバイザリが7.6を修正版としたことの関係についての開発元の説明
注
出典
当事者
- [1]The Squid Software Foundation『\[squid-announce\] \[ADVISORY\] SQUID-2026:4 Memory disclosure in FTP gateway』(2026年6月23日公開)
- [2]The Squid Software Foundation『\[squid-announce\] Squid version 7.6 is available』(2026年6月8日公開)
- [3]The Squid Software Foundation『\[squid-announce\] Squid version 7.7 is available』(2026年8月24日公開)
- [4]The Squid Software Foundation『Squid CVE-2026-47729 and CVE-2026-50012』(2026年6月12日公開)
- [5]The Squid Software Foundation『Re: Squid CVE-2026-47729 and CVE-2026-50012』(2026年6月15日公開)
- [6]The Squid Software Foundation『SQUID-2026:4 Memory disclosure in FTP gateway』(2026年6月23日公開、保存記録のみ) 保存記録
関係組織
- [7]Debian Project『CVE-2026-47729』(公開日不明、2026年11月7日閲覧)
- [8]Debian Project『\[SECURITY\] \[DSA 6360-1\] squid security update』(2026年6月21日公開)
- [9]Debian Project『Re: Squid CVE-2026-47729 and CVE-2026-50012』(2026年6月22日公開)
- [10]Red Hat, Inc.『CVE-2026-47729』(2026年6月23日公開)
- [11]SUSE LLC『CVE-2026-47729 Common Vulnerabilities and Exposures』(公開日不明、2026年11月7日閲覧)
- [12]Canonical Ltd.『CVE-2026-47729』(2026年6月12日公開、2026年10月21日更新)
- [13]Canonical Ltd.『USN-8941-1: Squid vulnerabilities』(2026年10月20日公開)
- [14]Amazon Web Services, Inc.『CVE-2026-47729』(2026年6月12日公開、2026年9月18日更新)
公的機関
- [15]CVE Program『CVE-2026-47729 Squid: Memory disclosure in FTP gateway』(2026年7月16日公開、2026年7月17日更新)
- [16]National Institute of Standards and Technology『CVE-2026-47729』(2026年7月16日公開、2026年10月24日更新)
調査・観測
- [17]Calif Global Inc.『Squidbleed (CVE-2026-47729)』(2026年6月18日公開、2026年6月25日更新)
- [18]Horizon3.ai, Inc.『CVE-2026-47729: Squidbleed Data Leak Vulnerability』(2026年6月24日公開、2026年8月1日更新)
- [19]Greenbone AG『June 2026 Threat Report: Actively Exploited CVEs』(2026年7月9日公開)
- [20]Greenbone AG『Re: Squid CVE-2026-47729 and CVE-2026-50012』(2026年6月24日公開)
更新記録
- 2026年6月24日:公開した。
- 2026年6月25日:Calif.ioの技術解説の6月25日の更新(出典17)を確かめ、「脆弱性の内容」の読み出しの仕組みの記述を改めた。
- 2026年7月9日:Greenboneの6月の脅威報告(出典19)を「悪用の状況」と「修正と回避策」に加えた。
- 2026年7月16日:CVE記録(出典15)とNVDの記録(出典16)の公開を「時系列」に、CVSSとCWEの値を「脆弱性の内容」に加えた。
- 2026年7月17日:CVE記録の7月17日の更新(出典15)で加わったCISAのSSVCの評価を「悪用の状況」に加えた。
- 2026年8月1日:Horizon3.aiの解説の8月1日の更新(出典18)を確かめ、「修正と回避策」と注2を改めた。
- 2026年8月24日:Squidプロジェクトの7.7の告知(出典3)を注2に加えた。
- 2026年9月18日:Amazon Linuxの9月18日の更新(出典14)で示された評価と状態を「脆弱性の内容」と「対象の製品と版」に加えた。
- 2026年10月20日:UbuntuのUSN-8941-1(出典13)を「対象の製品と版」に加えた。
- 2026年10月21日:UbuntuのCVEページの10月21日の更新(出典12)で示された修正版を「対象の製品と版」の表3に反映した。
- 2026年10月24日:NVDの記録の10月24日の更新(出典16)で示された分析を「対象の製品と版」に加えた。
