HN 日本語サマリー

← 一覧へ戻る
セキュリティ

Cloudflare、php2shell脆弱性に対する保護を展開

Cloudflare deploys protections against php2shell vulnerability (blog.cloudflare.com)

77 pointsby Maxious7 コメント

要約

Cloudflareは、PHPの2つの脆弱性(CVE-2026-109618およびCVE-2026-109619、通称php2shell)に対し、Webアプリケーションファイアウォール(WAF)による保護をデフォルトで展開しました。これらの脆弱性は、PHP 5.4以降を実行するWebサーバーに影響を与え、サービス拒否、リモートコード実行、データ漏洩を引き起こす可能性があります。Cloudflareは、この保護のためにリクエストとレスポンスの両方のシグナルを組み合わせる新しい「フルトランザクション検出」機能を導入しました。

全文翻訳

Cloudflare、php2shell脆弱性に対する保護を展開

本日、Calif.io、Wiz、OpenAI、およびQuarkslabは、PHPにおける2つの脆弱性、CVE-2026-109618およびCVE-2026-109619(php2shellとして知られています)を開示しました。これらの脆弱性は、PHP 5.4以降を実行するすべてのWebサーバーに影響を与え、攻撃者が特別に細工されたHTTPトラフィックを処理するアプリケーションに対して、サービス拒否、リモートコード実行、およびデータ漏洩を引き起こす可能性があります。

Cloudflareは、PHP財団、OpenAI、Wizなどと協力し、インターネットを保護するための緩和策を展開する協調的な取り組みに参加しました。Cloudflareは、2026年10月初旬からWebアプリケーションファイアウォール(WAF)の保護機能を開発・展開しており、これは公開開示の約9時間前に展開されました。UTC 2026年10月21日 3:02 AM以降、Cloudflareの無料または有料WAFを利用しているお客様は、php2shellに対する保護がデフォルトで有効になっています。

Cloudflareは、脆弱性が公式リリース日前にリークされ、お客様を標的とした攻撃トラフィックを観測する中で、すべてのお客様に対して複数の緩和策を正常に展開しました。攻撃者がルールのロジックと照合して一致した量のトラフィックを追跡することで、保護を回避しようと攻撃ペイロードをどのように変異させているかを観測しました。

php2shellに対する保護には、標準的なリクエストベースのルール以上のものが必要でした。リクエストデータだけでは、エクスプロイトと正当なトラフィックを区別するのに十分な証拠を提供できないことがよくあります。オリジンのレスポンスはコンテキストを追加し、誤検知のリスクを低減しながら、エクスプロイトが成功したかどうかを特定するのに役立ちます。

この保護を提供するために、Cloudflareはフルトランザクション検出という新しいCloudflare WAF機能を開発しました。これは、同じHTTPトランザクション内のリクエストとレスポンスからのシグナルを組み合わせます。レスポンスルールは、一致したオリジンレスポンスを要求者に到達する前にブロックできます。php2shellの保護は、この機能を使用してリリースされた最初のマネージド検出です。

WAF保護が防御の深層における追加の緩和層を提供している場合でも、お客様はPHPリポジトリをパッチ適用することが推奨されます。当社のセキュリティアナリストは、攻撃活動を引き続き監視し、今後数時間から数日の間に新しい技術やバリエーションが出現した場合、ルールを更新します。新しいルールは変更履歴で追跡できます。

保護は、WAFが展開されているすべてのプランで利用可能であり、無料ユーザーを含むすべてのお客様に自動的に展開されます。

脆弱性について

PHPは、ウェブサイトの約70%で使用されています。php2shellの脆弱性はPHPランタイム自体に影響を与え、攻撃者が脆弱なサーバー上で悪意のあるコードを実行したり、顧客データを公開したり、サービスを妨害したりすることを可能にします。PHPはWordPressやMagentoのような広く使用されているプラットフォームの基盤となっているため、これらの欠陥はインターネット全体で多数のアプリケーションに影響を与える可能性があります。

2つの脆弱性は、PHPがHTTPリクエストの処理中に問題が発生した場合のメモリの処理方法に関連しています。通常、PHPはリクエストを処理するために必要なデータを格納するためのメモリを割り当て、その作業が完了すると解放します。例えばメモリ不足で処理が予期せず停止した場合、PHPはメモリを安全にクリーンアップできません。これらの脆弱性は、PHPがエラーを処理し、まだ完全に設定されていないデータや既に解放されたメモリを使用しようとした場合に発生します。

攻撃者は、特別に細工されたHTTPリクエストを送信することで、これらの条件を引き起こすことができます。大きなリクエストはサーバーリソースを消費するだけでなく、メモリに圧力をかける方法の一つです。この無効なメモリ内でPHPが遭遇するデータを操作することにより、攻撃者はPHPプロセスをクラッシュさせたり、機密情報を公開したり、攻撃者が提供したコードを実行したりできる可能性があります。

2つの脆弱性は、安全でないメモリアクセスが発生するタイミングが異なります。

脆弱性問題の内容
CVE-2026-109618PHPがメモリ不足になり、一部の内部データが適切に初期化される前に処理を中断します。そのリクエストのクリーンアップ中に、PHPはこの未完了のデータを有効なものとして使用する可能性があります。
CVE-2026-109619重大なエラーがリクエストを中断し、PHPがリクエスト終了時に解放されるメモリへの参照を保持したままになります。同じPHPプロセスが後続のリクエストを処理する際に、これらの古い参照をたどり、無効になったメモリにアクセスして機密データを公開する可能性があります。

これらの欠陥はPHPランタイムにあるため、ウェブサイトのコードやプラグインを更新するだけでは、これらの脆弱性は修正されません。管理者は、アプリケーションを実行しているPHPソフトウェアを更新する必要があります。ホスティングプロバイダーがPHPを管理している場合は、プロバイダーにセキュリティアップデートを適用するように依頼してください。

管理者は、影響を受けるバージョンと修正手順についてPHPのアドバイザリに従うことができます。パッチ適用中は、Cloudflare WAF保護を有効にしておいてください。不要なアップロードを制限したり、アップロードサイズを制限したりすることも露出を減らすのに役立ちますが、これらの対策はPHPの修正に代わるものではありません。

新しいルール

無料のお客様向けに、Cloudflare Managed Free Ruleset(ルールセットID: 77454fe2d30c4220b5701f6fdfb893ba)の下で新しいルールがリリースされました。無料のお客様は、保護を有効にするために何も操作する必要はありません。ルールセットの動作を上書きするには、ドキュメントを参照してください。

ルールの説明ルールID
Generic Rules - Anomalous Execution - 14e315666e8e344cdb64119a3b5ccf32f
Generic Rules - Anomalous Execution - 200c10e6cc4da4bd08722adeebcd95984
Generic Rules - Anomalous Execution - 348ddf592361e4fdb97a8a85982dab691
Generic Rules - Anomalous Execution - 43556683d512a47f2937899c524b1a4c6
Generic Rules - Anomalous Execution - 5da07c85852e34625bb478496302ede46
Generic Rules - Anomalous Execution - 619373a83abb840e18ab3ce5a7975ce1b
Generic Rules - Anomalous Execution - 707f0b6ddaabf40b1b2042dade8d613fa

有料プラン向けの保護は、Cloudflare Managed Ruleset(ルールセットID: efb7b8c949ac4650a09736fc376e9aee)の一部としてリリースされました。Professional、Business、またはEnterpriseプランをご利用のお客様は、Managed Rulesetのデプロイメントを確認し、ブロックモードでデプロイされていることを確認してください。

ルールの説明ルールID
Generic Rules - Anomalous Execution - 1c1d409ad838f47f59446f21cc438d5dd
Generic Rules - Anomalous Execution - 2f9a45927414245e3a64bb12d0a0c2f64
Generic Rules - Anomalous Execution - 3771c654ae1154d4daa72f4e1545d163c
Generic Rules - Anomalous Execution - 4217005865f0145f392300bac212afcc9
Generic Rules - Anomalous Execution - 538efdb17ea594501bb55a1d71867b12e
Generic Rules - Anomalous Execution - 64148ae686fdb4d01be673fab9d9c073d
Generic Rules - Anomalous Execution - 71389aa259617437392ce149c48143645

エクスプロイトの試みをより正確に特定するために、Cloudflareはフルトランザクション検出という新しいWAF機能を開発しました。これは、同じHTTPトランザクションの両側を分析します。一部の悪意のあるペイロードはリクエストのみで識別できますが、レスポンスには誤検知を減らす高信頼度のルールを作成するために使用できる有用なシグナルが含まれています。一致したフルトランザクションルールは、オリジンレスポンスが要求者に到達する前にブロックできます。その仕組みについては、フルトランザクション検出のブログ記事をご覧ください。

以下のルールは、無料プランを含むすべてのプランのお客様のために、新しいCloudflare Managed Response Firewall Defaultに展開されています。

ルールの説明ルールID
Default block for High confidence Signaturesafffe22785674c80a31875c848d2242a

注:ルール説明はまもなく更新されます。

イベントの確認と保護のカスタマイズ

ブロックされたリクエストを分析するには、Security > Security Analytics > Eventsにアクセスしてください。上記のテーブルのルールIDでフィルタリングし、一致したリクエスト、アクション、パスを確認してください。イベントは、アクションがマネージドルールまたはカスタムルールから来たものかを示します。保護をカスタマイズする必要があるお客様は、アプリケーションの関連部分にManaged Rulesetのスコープを更新できます。

PHPを更新し、保護を有効にしておく

Cloudflareのお客様は、Managed Rulesetを使用することでデフォルトで保護されています。PHPリポジトリにできるだけ早くベンダーアップデートを適用し、WAF保護を追加の保護として有効にしておくことをお勧めします。当社のWAFアナリストは、新しい技術が出現するにつれて保護を更新し続けます。