SquidのFTPゲートウェイの境界外読み取りCVE-2026-47729

カテゴリ
脆弱性の公表
タグ
国外
目次
  1. 脆弱性の内容
    1. 読み出しの仕組み
    2. 悪用の前提条件
  2. 時系列
  3. 対象の製品と版
    1. 配布元の対応
  4. 悪用の状況
  5. 修正と回避策
  6. 未公表の事項
  7. 注
  8. 出典
  9. 更新記録
  10. 関連記事

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]。

表1:CVE-2026-47729の評価
項目値資料
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]
CWECWE-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年3月4日Aisle Research最初の報告をした⁠[1]
2026年4月17日Calif.io報告した⁠[1]
2026年4月19日-修正がmaster/v8に取り込まれた⁠[17]
2026年5月7日CTF.ae報告した⁠[1]
2026年5月17日-パッチが公開された⁠[1]
2026年5月19日-CVE番号が予約された⁠[15]
2026年6月8日SquidプロジェクトSquid 7.6を公開した⁠[2]
2026年6月12日Squidプロジェクトoss-securityで、CVE-2026-47729とCVE-2026-50012の禁止期間(エンバーゴ)の終了を告げた⁠[4]
2026年6月15日Squidプロジェクトoss-securityで、CVE-2026-47729の修正は7.7に入ると訂正した⁠[5]
2026年6月18日Calif.io技術解説を公開した⁠[17]
2026年6月21日DebianDSA-6360-1でsquidを更新した⁠[8]
2026年6月23日Squidプロジェクトsquid-announceにアドバイザリSQUID-2026:4を投稿した⁠[1]
2026年7月16日CVE Program・NVDCVE記録とNVDの記録を公開した⁠[15、16]

目次へ

対象の製品と版

表2:上流のSquidの影響を受ける版と修正版
製品影響を受ける版修正版資料
Squid3.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]。

表3:配布元の対応状況
配布元状態修正版・アドバイザリ資料
Debian(bullseye)fixed4.13-10+deb11u7(DLA-4697-1)⁠[7]
Debian(bookworm)通常版の5.7-2+deb12u5はvulnerable、securityはfixed5.7-2+deb12u6(DLA-4697-1)⁠[7]
Debian(trixie)fixed6.13-2+deb13u2(DSA-6360-1)⁠[7、8]
Debian(unstable)fixed7.6-1⁠[7]
Ubuntu(26.04 LTS)Fixed7.2-2ubuntu2.2⁠[12]
Ubuntu(25.10)Fixed6.14-0ubuntu0.25.10.4⁠[12]
Ubuntu(24.04 LTS)Fixed6.14-0ubuntu0.24.04.4⁠[12]
Ubuntu(22.04 LTS)Fixed5.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]。

  1. 安定版向けのパッチをパッチアーカイブで示し、Squid 7向けにはコミット865a131c7d557e68c965043d98c2eccae26deef8のパッチを挙げた⁠[1]。
  2. パッケージ化されたSquidの利用者には、更新パッケージの提供状況をパッケージの提供元に確かめるよう求めた⁠[1]。
  3. 回避策として、FTPプロトコルを対象にしたaclとhttp_access denyの設定を、squid.confの独自の「http_access allow」の行より上に置くよう示した⁠[1]。
  4. 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〕Debianは6月22日の投稿で、示された修正は7.6にあるとして7.7の修正の所在を尋ねた⁠[9]。Greenboneは6月24日の投稿で、アドバイザリが7.6未満を修正済みの区切りにしたと書いた⁠[20]。
  • 〔注2〕Horizon3.aiは修正版を「Squid version 7.7 or later」と記載した⁠[18]。Squidプロジェクトは8月24日の7.7の告知で、主な変更の1つにFTPコマンドの扱いの修正を挙げた⁠[3]。

出典

当事者

関係組織

公的機関

調査・観測

更新記録

  • 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)で示された分析を「対象の製品と版」に加えた。

目次へ