tomitaku.net

Chainguard

チェーンガード / Chainguard, Inc. / PHP2shell / PHP2Shell
2026-10-26 add 2,579字

Chainguardは、ソフトウェアサプライチェーンのセキュリティ5を専門とするアメリカ21の企業。Googleでソフトウェアサプライチェーンのセキュリティに取り組んでいたダン・ローレンク(Dan Lorenc、CEO)らが2021年に創業し、ワシントン2州カークランドに本社を置く。既知の脆弱性をできるだけ取り除いた最小構成のコンテナイメージなどを提供している。2026年10月、PHPの重大な脆弱性「PHP2shell」の修正を、協調開示で決めた公表時刻より6時間以上早く配布し、PHPの開発者側から禁輸(エンバーゴ)破りだと批判された。

PHP2shell

PHP2shellは、2026年10月21日に公表されたPHPの2件の脆弱性をまとめた呼び名である。どちらもリモートからのコード実行(RCE)につながり、CVSS v4.0のスコアはいずれも9.2とされた。

  • CVE-2026-109618:メモリ上限(memory_limit)に達したタイミングによって、初期化が終わっていない内部データが有効なものとして扱われ、メモリが壊れる。Apacheの mod_php では、アプリケーション2のコードが動く前の認証不要なリクエストで発動し、デフォルト設定でのRCEが実証された
  • CVE-2026-109619:致命的エラーが起きた箇所によっては、内部状態が前のリクエストのメモリを指したまま残り、解放済みメモリの使用(use-after-free)が起きる。mod_php 上の実際のアプリケーションでRCEが実証された

修正版は 8.2.35、8.3.36、8.4.27、8.5.12。Wizによれば、5.4以降の過去10年ほどのPHPはすべて、少なくとも一方の影響を受ける。

PHP Foundationの説明によると、問題の兆しは2024年の外部監査の最中にすでに見つかっていたが、当時は攻撃に使う方法が見つからず、後回しになっていた。2026年8月11日にCalifの研究者が同じ原因による無条件のRCEを報告し、続いてWiz(8月24日)とOpenAI(9月18日)も報告した。いずれもAIモデルを使った調査だったとされる。PHP側は、修正に時間がかかった理由として、セキュリティチームの意思決定の進め方と人手不足を認めている。

公表前日からの混乱

公表の前日から、情報の流出が相次いだ。時刻はUTC。

  • 10月16日(金):Chainguardが研究者の1人からPHPに関する公表が近いことを知り、その夜のうちに社内のAIの仕組みを使って同じ脆弱性を独自に見つけた。翌日から協調開示の連絡チャネルに加わり、修正パッチのテストに協力した
  • 10月17日(土):AmazonのハニーポットMadPotが、最初の攻撃の試みを検知した。攻撃者がどこから情報を得たのかは分かっていない
  • 10月20日(火)15時ごろ:2件のCVE番号が、誤ったリリース3時刻と誤ったCVSSスコア(10.0)とともにフォーラム2やSNSに出回った
  • 同日19時30分:PHPはリリースを10月22日14時から21日14時に1日前倒しすると事前告知した
  • 同日20時ごろ:Califが攻撃の実証(PoC)動画を誤って公開した。すぐに削除されたが、コピーが広まった
  • 同日23時ごろ:重要インフラ事業者向けに伝えた緩和策が漏れた可能性がある
  • 10月21日(水)7時41分:Chainguardが修正入りのイメージを公開した
  • 同日14時:PHPが修正版を正式にリリースした

Chainguardの早期配布をめぐる対立

Chainguardは、ほかのディストリビューション2と同じく、公表と同時に利用者が更新できるように修正パッチを事前に受け取っていた。PHP Foundationは、同社がこの取り決めを一方的に破ったと批判した。正式リリース前にバイナリの形で修正内容を調べられる状態を作り、多くの関係者が何週間もかけて進めてきた協調開示を無視した、という主張である。また、正式リリースの時点では、実際に機能する攻撃コードは確認していなかったとしている。

ローレンクは早期に公開した事実は認めたうえで、情報を漏らしたわけではないと反論した。同社の方針は協調開示だが、実際に攻撃されている証拠がある場合は例外だという。10月20日から21日にかけての夜、PHPの開発者が多いヨーロッパ5が深夜の時間帯に、連絡チャネルの複数のベンダーから攻撃が起きているとの報告があり、公表前から被害が出ていると判断して配布に踏み切った。修正入りのイメージは顧客だけでなく誰でも入手できる形で公開しており、自社の顧客のためだったという見方も否定している。PHP Foundationと開発者に負担をかけたことは残念だとしつつ、同じ判断をくり返すかと問われると、変えることはないと答えた。

この件では、AIによって脆弱性が見つかる速さに、オープンソース2の開発者が修正を出す速さが追いつかなくなっていることも話題になった。ローレンクは、自社のAIが簡単な指示から一晩で同じ脆弱性を見つけたことを挙げ、数時間で攻撃コードが作られるのが「新しい日常」になりつつあると述べている。

公表後の攻撃

Cloudflareのマシュー・プリンスCEOによると、同社のネットワークでは公表前の10時間に数千件、公表後45分で数万件、2時間で数十万件の攻撃の試みが観測された。Chainguardのハニーポットでは、主に中国やロシアのIPアドレスからの攻撃が捉えられたという。一方で、GitHubなどに出回った攻撃コードには偽物や未完成のまま消されたものが多く、ローレンクも、攻撃には対象の環境を知る必要があり簡単ではないと述べている。被害の全体像はまだ分かっていない。

要確認

  • Chainguardが配布の判断を協調開示の連絡チャネルに伝えた時刻と、PHP側がそれをどう受け止めたか
  • Chainguardのサポート2記事にある、同社独自のパッケージ4番号での修正済みバージョン(記事に直接アクセスできなかった)
  • 攻撃の被害の規模
  • 創業メンバーの顔ぶれ(資料によって挙がる名前が異なる)

参照

言及
なし
類似