
Cloudflareは、PHPの脆弱性「php2shell」を狙う通信へのWAF対策を2026年10月21日に公開しました。WAFはWebアプリケーションへの通信を検査・制御する仕組みです。今回の対策では、リクエストとサーバーの応答を組み合わせて攻撃の成否を判定します。WAFを利用する全プランに自動適用され、無料プランも対象です。
PHPの処理中に起きるメモリーの問題
php2shellは、PHPランタイムに影響する2件の脆弱性の総称です。PHPはWebサイトなどで使われる実行環境です。細工されたHTTP通信を処理すると、サービス妨害やリモートコード実行、情報漏えいにつながる可能性があります。
一方の問題では、メモリー不足で処理が中断した際、初期化が途中の内部データが不正な状態で残ります。その後の後処理が誤った状態を参照し、コード実行につながる可能性があります。
もう一方では、リクエストの処理が終わってメモリーが解放された後も、PHPの常駐ワーカーに古い内部状態への参照が残ることがあります。同じワーカーが後続リクエストでその状態を使うと、解放済みメモリーへのアクセスが起き、リモートコード実行につながる可能性があります。
リクエストだけでは攻撃の成否を見分けにくい
従来のリクエスト単位の検査では、受信データに攻撃らしい特徴があるかを判断します。しかし、疑わしい入力だけでは、アプリケーションが攻撃を拒否したのか、処理して情報を返したのか分からない場合があります。
攻撃を広く捉えるルールは、正規の通信まで誤って遮断する可能性があります。誤検知を避けるために条件を狭めると、判定しにくい攻撃を見逃す余地が生じます。
リクエストに対するオリジンサーバーの応答も加えると、同じ入力でも拒否やエラーになった場合と、機密情報を含む応答が返った場合を区別する材料になります。Cloudflareは、両方を組み合わせて攻撃の証拠を確認し、誤検知のリスクを抑える仕組みを導入しました。
応答を利用して攻撃の結果を遮断
新機能の「フルトランザクション検知」は、1回のHTTP通信についてリクエストと応答の両方を評価します。検知結果に基づく応答ルールは、オリジンサーバーからの応答を利用者へ届ける前に遮断できます。
この方式では、検知と通信への対処を分けています。リクエストと応答の特徴を検知し、ルールが記録や遮断などの対応を決めます。
ただし、応答を遮断しても、オリジンサーバーですでに実行された処理は取り消せません。Cloudflareは今回のphp2shell対策に、この機能を使った最初の管理型検知を適用しました。
WAF対策とPHP更新を併用
Cloudflareは10月初旬から対策を開発・導入し、公開情報が出る約9時間前に展開しました。10月21日午前3時2分(UTC)から、無料・有料を問わずWAFを利用する顧客にphp2shellへの保護が適用されました。
公開前に脆弱性情報が漏れた後、Cloudflareは顧客を狙う攻撃通信を観測しました。Cloudflareによると、攻撃者が検知ルールを回避しようとペイロードを変化させる動きも確認し、ルールへの一致状況とロジックを照合しました。
CloudflareはWAFを追加の防御層と位置づけ、利用者にPHP環境の更新も促しています。監視を続け、新たな攻撃手法や亜種が現れた場合はルールを更新する方針です。










