Cloudflare has deployed default web application firewall (WAF) protections for newly disclosed PHP vulnerabilities before public disclosure. The rules use request and response signals to stop exploit attempts and prevent exposed data from reaching attackers. https://t.co/OQG4x6x858
— Cloudflare (@Cloudflare) October 21, 2026
出典:X(@Cloudflare)
Cloudflareは、PHPの2件の脆弱性「CVE-2026-109618」「CVE-2026-109619」(総称:php2shell)に対するWAF保護を展開したと発表しました。無料プランを含む、WAFを導入している全プランが対象です。ただし、WAFは追加の防御層であり、根本的な対処にはアプリケーションを実行するPHP自体の更新が必要です。

php2shellとは:PHP 5.4以降に影響する2件の脆弱性
Cloudflareの発表によると、Calif.io、Wiz、OpenAI、Quarkslabは2026年10月21日、PHPに関する2件の脆弱性を公表しました。「php2shell」と呼ばれるこれらの脆弱性は、PHP 5.4以降を実行するすべてのWebサーバーに影響します。
アプリケーションが細工されたHTTPリクエストを処理すると、サービス拒否、リモートコード実行、データ漏えいにつながる可能性があります。問題があるのはPHPランタイム自体であり、WordPressやMagentoなど、PHPを基盤とするアプリケーションにも影響が及ぶ可能性があります。
エラー処理に伴う不正なメモリアクセスが問題
2件の脆弱性は、HTTPリクエストの処理中にエラーが起きた際の、PHPのメモリ管理に関係しています。
| 脆弱性 | 問題の概要 |
|---|---|
| CVE-2026-109618 | メモリ不足で処理が中断され、内部データの初期化が完了しないまま、リクエストの後処理でそのデータを有効なものとして使用する可能性があります。 |
| CVE-2026-109619 | 致命的なエラーでリクエストが中断された際、終了時に解放されるメモリへの参照が残ります。同じPHPプロセスが後続のリクエストを処理するときに、古い参照から無効なメモリへアクセスし、機密データが露出する可能性があります。 |
大きなリクエストによってメモリに負荷をかけることも、問題を引き起こす方法の一つです。ただし、単なるリソース消費の問題ではなく、不正なメモリ内のデータを操作されることで、PHPプロセスのクラッシュや情報漏えい、攻撃者が用意したコードの実行につながる可能性があります。
Cloudflareは無料プランを含めて保護を展開
Cloudflareは、PHP Foundation、OpenAI、Wizなどと連携して緩和策を展開したと説明しています。2026年10月初旬からWAF保護の開発・展開を進め、公表の約9時間前に保護を展開しました。同社によると、10月21日午前3時2分(UTC)から、無料・有料WAFを利用する顧客は標準でphp2shellへの保護対象になっています。
同社はまた、正式な公開日より前に脆弱性情報が漏えいし、顧客を狙う攻撃トラフィックを観測したとしています。攻撃者が保護を回避しようと、攻撃用のペイロードを変化させる動きも確認しました。
リクエストとレスポンスを組み合わせて検知
今回の保護には、新しいWAF機能「full transaction detection」が使われています。
Cloudflareによると、リクエストの情報だけでは、攻撃と正当な通信を十分に区別できない場合があります。この機能は、同じHTTPトランザクションのリクエストとレスポンス双方の情報を組み合わせ、誤検知のリスクを抑えながら検知の確度を高める仕組みです。
ルールに一致した場合、オリジンサーバーのレスポンスを、リクエスト元へ届く前にブロックできます。php2shell対策は、この機能を使って公開された初のマネージド検知です。
プランごとの確認事項
無料プラン:保護の有効化操作は不要
無料プラン向けのルールは、「Cloudflare Managed Free Ruleset」に追加されています。保護を有効にするための操作は不要です。
- ルールセットID:
77454fe2d30c4220b5701f6fdfb893ba
有料プラン:ブロックモードでの展開を確認
有料プラン向けの保護は、「Cloudflare Managed Ruleset」の一部として提供されています。Professional、Business、Enterpriseプランの利用者に対し、Cloudflareはマネージドルールセットがブロックモードで展開されていることを確認するよう案内しています。
- ルールセットID:
efb7b8c949ac4650a09736fc376e9aee
また、無料プランを含む全プラン向けに、「Cloudflare Managed Response Firewall Default」へ次のレスポンス用ルールが展開されています。
- ルール名:
Default block for High confidence Signatures - ルールID:
afffe22785674c80a31875c848d2242a
ブロックされた通信の確認方法
ブロックされたリクエストは、管理画面の「Security > Security Analytics > Events」で確認できます。ルールIDで絞り込み、一致したリクエスト、アクション、パスを調べられます。イベントには、マネージドルールとカスタムルールのどちらによるアクションかも表示されます。
保護を調整する必要がある場合は、マネージドルールセットの適用範囲を、アプリケーションの関連部分に合わせて変更できます。
WAFを維持しながら、PHP自体を更新する
Cloudflare's web application firewall can now correlate an HTTP request with its response. Full transaction detection helps every customer find successful exploits, data exposure, and risky misconfigurations that request-only inspection can miss. https://t.co/j5C7a4GoLM
— Cloudflare (@Cloudflare) October 21, 2026
出典:X(@Cloudflare)
WAF保護が有効でも、PHPのセキュリティ更新は必要です。 今回の問題はPHPランタイムにあるため、Webサイトのコードやプラグインだけを更新しても修正されません。
管理者はPHPのアドバイザリで影響するバージョンと対処方法を確認し、アプリケーションを実行しているPHPを更新する必要があります。ホスティング事業者がPHPを管理している場合は、事業者にセキュリティ更新の適用を依頼してください。
Cloudflareは、更新作業中もWAF保護を有効にしておくよう推奨しています。不要なアップロードの制限やアップロードサイズの上限設定もリスク低減に役立ちますが、PHPの修正に代わるものではありません。
同社のセキュリティアナリストは攻撃活動の監視を継続し、新たな手法や変種が現れた場合に保護ルールを更新するとしています。