これまでの経緯

PHP「php2shell」脆弱性へのCloudflareの迅速な対応

Cloudflare、PHPのサプライチェーン脆弱性「php2shell」へ防御策を展開—WAFで攻撃を緩和のイメージ画像

2026年10月21日、セキュリティ企業Calif.io、Wiz、OpenAI、Quarkslabが共同で、PHPに存在する2つの深刻な脆弱性、CVE-2026-109618とCVE-2026-109619を公開しました。これらは「php2shell」として知られ、PHP 5.4以降の全てのバージョンに影響し、特別に細工されたHTTPトラフィックによってサービス拒否(DoS)、リモートコード実行(RCE)、およびデータ漏洩を引き起こす可能性があります(Hacker News)。

PHPはウェブサイトの約70%で使用されており、WordPressやMagentoのような広く利用されているプラットフォームの基盤となっているため、これらの脆弱性はインターネット上の多数のアプリケーションに影響を及ぼす可能性があります。

これに対し、米CloudflareはPHP財団やOpenAI、Wizなどと連携し、迅速な対応を行いました。Cloudflareは公式公開の約9時間前となる2026年10月初旬からWAF保護を展開しており、2026年10月21日UTC午前3時02分からは、無料および有料プランのWAFユーザーに対してデフォルトでphp2shellからの保護を提供しています(Hacker News)。

php2shell脆弱性の技術的背景と影響

php2shell脆弱性は、PHPがHTTPリクエストの処理中にエラーが発生した場合のメモリ管理に問題があることに起因します。通常、PHPはリクエスト処理に必要なメモリを割り当て、作業完了後に解放しますが、処理が予期せず停止した場合、メモリを安全にクリーンアップできません。この結果、PHPがエラーを処理しようとした際に、完全に設定されていないデータやメモリを使用しようとすることで脆弱性が顕在化します(Hacker News)。

影響範囲の広さから、この脆弱性はCVSSv4.0の深刻度スコアで9.2と非常に高い評価を受けています(AppleInsider)。

Cloudflareの新しいWAF防御機能「Full Transaction Detection」

Cloudflareはphp2shellへの保護のため、通常のRequestベースのルールだけでは不十分だと判断しました。なぜなら、リクエストデータだけでは、正当なトラフィックと悪用を区別するための十分な証拠が得られない場合があるためです。そこでCloudflareは、新しいWAF機能である「Full Transaction Detection」を開発し、導入しました。

これは、同じHTTPトランザクション内のリクエストとレスポンスの両方からの信号を組み合わせることで、攻撃の成功をより正確に識別し、誤検知のリスクを低減するものです。php2shellに対する保護は、この新機能を活用した初のマネージド検出となります(Hacker News)。

Cloudflareは、公式リリース前に脆弱性が漏洩した際にも複数の緩和策を展開し、お客様を保護することに成功しました。同社は、攻撃者が保護を迂回しようと攻撃ペイロードを変化させる様子を観察し、防御ルールを継続的に更新しています。

項目 従来のWAFルール Full Transaction Detection
検出対象 リクエストのみ リクエストとレスポンス
攻撃成功の判断 困難 レスポンスから判断可能
誤検知のリスク 高い 低い
php2shellへの適用 不十分 有効な防御策

第三の脆弱性CVE-2026-115560の報告

さらに、2026年10月23日には、PHPプロジェクトが関連する別の脆弱性、CVE-2026-115560に関する情報提供を発表しました。これはPHPのセッションアップロード進捗機能に関するもので、PHP 8.5.12を含む完全にパッチが適用されたリリースにも影響し、次回の定期リリースで修正される予定です(Hacker News)。

PHP財団は、このCVE-2026-115560は「PHPの実用的な利用では発生するとは考えられない、非常に可能性の低い設定と特定のPHPアプリケーションコードの組み合わせを必要とする」と述べており、設定変更で緩和できることから、緊急パッチではなく情報アドバイザリの公開に留まっています(The Register)。

エンジニア目線で見ると:WAFは重要だが根本的なパッチ適用が必須

CloudflareのようなCDN/WAFベンダーが迅速な保護を展開してくれるのは、セキュリティ担当者としては非常に助かります。特に、公式発表前に攻撃が観測される中で対応できたのは、サプライチェーンセキュリティにおける連携の重要性を示していると感じます。今回導入された「Full Transaction Detection」は、HTTPリクエストとレスポンスを総合的に見て判断するというアプローチで、誤検知を減らしつつ効果的な防御を可能にする点で非常に興味深いと感じます。

私の個人プロダクトでもCloudflareを利用しているので、このような高度な防御が無料で提供されるのは嬉しい限りです。しかし、WAFはあくまで追加の防御レイヤーであり、根本的な解決策ではありません。PHPランタイム自体の脆弱性であるため、早急なPHPバージョンのアップデートとパッチ適用が最も重要です。

特に、session.upload_progress.nameを設定変更している場合はWAFによる保護の対象外となるため、自社の設定を再確認する必要があるでしょう。CVE-2026-115560のように緊急性の低い脆弱性でも、潜在的なリスクを考慮し、設定による緩和策を適用することを検討すべきではないでしょうか。