研究者らが、重要なメモリ保護機構を突く信頼性の高いエクスプロイトを開発しました。VulnCheckのサイバーセキュリティアナリストが、最新の64ビットシステムでアドレス空間配置のランダム化(ASLR)を突破したのです。この技術的成果により、危険なPHP2Shell脆弱性は、実際の攻撃に使える侵入経路へと変わりました。さらにこのエクスプロイトは、さまざまなPHP環境で認証不要のリモートコード実行を可能にします。
x86-64サーバーのASLR防御を回避
ASLRは従来、システムの実行中にプログラムのメモリレイアウトをランダム化します。この防御によって、攻撃者は標的のメモリオフセットを確実には予測できません。しかし今回のエクスプロイトは、2段階の攻撃チェーンでこの防御を無効化することに成功しました。
まずペイロードが、標的のメモリ空間に存在する情報漏えいのバグを突きます。次にスクリプトがベースアドレスを再構築し、レイアウトのランダム化を完全に回避します。研究者らは当初、標準的な本番環境の設定下にあるPHP 8.4.26に対してこのエクスプロイトを実証しました。管理者がエラー出力を完全に無効にしていても、攻撃は成功します。
複数バージョンに広がるエクスプロイトの信頼性
その後、研究チームは攻撃フレームワークを改良しました。VulnCheckはPHP2Shell脆弱性とメモリ安全性エクスプロイトに関する技術分析の中で、このツールの高い信頼性を示しています。この実用化されたツールは、バージョンごとのカスタマイズなしで、PHP 8.4.10から8.4.26までのすべてのリリースを確実に攻略できます。
研究者らはさらに、ARM64プロセッサアーキテクチャにおける攻撃対象領域も評価しました。ARM64チップでも最初のメモリリークは成功するものの、完全なコマンド実行は未検証です。一方でアナリストは、GitHub上で公開されている概念実証(PoC)リポジトリが急速に増えていると警告しています。
数百万台の公開サーバーが深刻なリスクに直面
インターネットのテレメトリーからは、オンラインインフラが置かれた憂慮すべき実態が浮かび上がります。インターネットスキャナーは、PHPの署名が確認できる公開エンドポイントを260万件以上特定しました。驚くべきことに、アナリストは発見可能なホストの約99.99%が攻撃に対して脆弱だと分類しています。
140万台を超えるサーバーは、古いソフトウェアビルドを示すバージョンヘッダーを明示的に公開しています。さらに110万台以上のサーバーが、公式のセキュリティパッチが提供されなくなった旧ブランチを運用しています。このため、数百万のWebアプリケーションがリモートからの侵害にさらされたままです。
CVE-2026-109618および109619に見るインタープリタ中核部の欠陥
重要なのは、これらの脆弱性がWebアプリケーションのコードではなく、PHPランタイムのインタープリタ自体に存在する点です。たとえばCVE-2026-109618は、メモリ不足の例外処理中に、破損した状態のクリーンアップを引き起こします。同様にCVE-2026-109619は、解放済みヒープメモリを指す危険なダングリングポインタを、リクエスト間で保持し続けます。
2つの脆弱性はいずれも、CVSS 4.0で9.2という「緊急」レベルの深刻度です。mod_phpを使用するApacheが最も深刻なリスクにさらされますが、他の構成も影響を受けるおそれがあります。具体的には、PHP-FPM、FrankenPHP、LiteSpeedの各サーバーが侵害される可能性があります。
公式の修正版と暫定的な回避策
PHPの開発元は、PHPの公式メンテナンスリリース告知で両方の欠陥を修正しました。修正は8.5.12、8.4.27、8.3.36、8.2.35の各バージョンで提供されています。Web管理者は、コアのランタイム環境をただちに更新する必要があります。
WordPressやDrupalなどのCMSを更新するだけでは、基盤となるサーバーは守れません。すぐにアップグレードできない管理者は、厳格な暫定対策を講じるべきです。具体的には、リクエストサイズの上限を強制し、脆弱なセッション追跡オプションを無効にしてください。ただし、メモリ攻撃に対する唯一確実な防御は、開発元の公式パッチを適用することです。
翻訳元: https://meterpreter.org/php2shell-aslr-bypass-rce/