セキュリティ
「攻撃者は明らかに、このバグに時間(とトークン)を費やしている」と研究者は指摘します。
研究者らが新たなエクスプロイトを開発しました。x86-64サーバー上でアドレス空間配置のランダム化(ASLR)を有効にしていても、PHP2Shell脆弱性を防げないことを示すものです。開発したVulnCheckは、このエクスプロイトを同社の「Initial Access Intelligence」顧客にのみ提供しています。同社はさらに、攻撃者がAIを使って新たな攻撃手法を探し出していると警告しました。
同チームは、これは「大きな前進」だと説明しています。これまでASLRが、実環境のサーバーでPHP2Shellを悪用する際の大きな障壁だったためです。ただし、この状況が今後も続くとは見ていません。「攻撃者は明らかに、このバグに時間(とトークン)を費やしています」と、VulnCheckのエクスプロイト開発ディレクターであるSpencer McIntyre氏はThe Registerに語りました。
PHP2Shellをめぐる混乱は、木曜日にさらに拡大しました。攻撃者がこれらのセキュリティ上の欠陥を悪用していたとの報告が相次ぎ、その攻撃は開示の数日前に始まっていたといいます。また、英国政府のウェブサイトが予防措置として停止する事態にもなっています。
VulnCheckのエクスプロイトが狙うのは、CVE-2026-109618です。これはメモリ範囲外の破損を引き起こす深刻なバグで、PHPでリモートコード実行(RCE)につながります。CVE-2026-109619とともに、PHP2Shellを構成する2件の脆弱性のひとつです。PHP Foundationは水曜日、両脆弱性を公表し、パッチを公開しました。
VulnCheckの研究者らは一晩かけて、PHPが推奨する本番環境の構成で、ASLRを有効にしたx86-64システム上でリモートコード実行を達成する、初の既知のエクスプロイトを開発したと考えています。
ASLRは、PHP2Shellのようなメモリ破損バグに対する組み込みの防御機構です。プログラムの主要なデータ領域のメモリ上の位置をランダムに配置します。プログラムの実行のたびにメモリ内でこれらの構成要素をその場でかき混ぜることで、RCEを狙う攻撃者が標的のメモリアドレスを正しく推測できないようにします。その結果、悪意あるコードの実行も阻止できます。
VulnCheckはGitHub上で「数百」ものPHP2Shellの概念実証(PoC)リポジトリを確認しました。しかしMcIntyre氏は、「正当に機能するエクスプロイトを含むものはごくわずか」だと述べています。その大きな理由はASLRにあるとのことです。
「脆弱性を実証することと、実環境にあるセキュリティ保護を突破できるエクスプロイトを開発することには、大きな隔たりがあります」とMcIntyre氏は語ります。「最大の障害のひとつがASLRでした。メモリ破損の脆弱性を格段に悪用しにくくするための防御機構です」
同氏によると、脅威ハンターらの新手法はASLRを回避します。確認済みのメモリリークをPHP 8.4.26上でRCEに連鎖させるもので、ASLRが有効で、PHPが推奨する本番構成のdisplay_errors=offでも、x86-64プラットフォームで動作するとしています。
「同じ条件でこれを達成する公開・商用のエクスプロイトは、他に確認できていません」とMcIntyre氏は言います。「この能力の開発は決して簡単ではありませんでした。ただ、本番構成のシステムでPHP2Shellを悪用する際の大きな障壁を乗り越えられることを示しています」
VulnCheckによると、ARM64でも動作するものの、ARMベースのシステムではRCEは現時点で機能していません。
これはすべての組織にとって警鐘となるはずです。とりわけAIによるバグ探索やエクスプロイト開発の時代を迎えた今、「脆弱性を悪用する技術的な難しさを、その脆弱性への防御策と取り違えてはなりません」とMcIntyre氏は述べました。
「脆弱なバージョンのPHPを運用している組織は、既存のメモリ保護や設定変更で攻撃を止められると考えず、パッチ適用を優先すべきです」®