Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
php2shell-CVE-2026-109618-CVE-2026-109619-PoC — php2shell(CVE-2026-109618 / CVE-2026-109619)の概念実証(PoC)エクスプロイトであり、脆弱なPHP環境におけるリモートコード実行を実証します。セキュリティ研究および教育目的に限ります。 | Kitploit
ツール/GitHubGitHub/eness/php2shell-cve-2026-109618-cve-2026-109619-poc
メモリフォレンジック脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育リモートアクセスツール
GitHubeness/php2shell-cve-2026-109618-cve-2026-109619-poc

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

php2shell-CVE-2026-109618-CVE-2026-109619-PoC

php2shell(CVE-2026-109618 / CVE-2026-109619)の概念実証(PoC)エクスプロイトであり、脆弱なPHP環境におけるリモートコード実行を実証します。セキュリティ研究および教育目的に限ります。

リポジトリを見る
780171415時間35分前未レビュー

php2shell — CVE-2026-109618 / CVE-2026-109619

php2shell — CVE-2026-109618 / CVE-2026-109619

緊急勧告 (CVSS v4.0: 9.2 - Critical): 10月20日、PHPコアにおける2件の認証前リモートコード実行 (RCE) 脆弱性の詳細が、協調的開示に先立ってオンラインに流出した。悪用されると、Webサーバーから直接任意のコマンドを実行できる。


目次

  • 概要
    • 根本原因
    • 検証と対象
  • 影響を受けるPHPバージョン
  • 脅威の状況と検出ガイダンス
    • 挙動の指標と不審な子プロセス
    • 監視の推奨事項
  • 組織向けの対応項目
  • 概念実証 (PoC)
    • エクスプロイトのアーキテクチャとステージ
    • 対象の要件
    • 使用方法とパラメータ
    • プロファイルとオフセット
  • 緩和策とソースパッチ
    • 1. 設定による緩和 (即時の暫定措置)
    • 2. 自動クイックフィックススクリプト
    • 3. ソースコードパッチ (session-upload-progress-counters.patch)
    • 4. Cloudflare WAFカスタムルール
    • 5. FrankenPHP Caddyfile設定
    • 6. Lighttpd設定
    • 7. Apacheの緩和 (ModSecurityと.htaccess)
  • 免責事項

概要

php2shell は、PHPコアの機能に影響する2件の重大な脆弱性 (CVE-2026-109618 および CVE-2026-109619) を指す。主に実証されている攻撃ベクトルは、PHPコアのセッションアップロード進捗メカニズムにおけるヒープのuse-after-free (UAF) であり、これが任意コード実行 (zend_call_function / system()) につながる。

  • 深刻度: Critical (CVSS v4.0: 9.2)
  • 影響を受けるバージョン: 報告によると、PHPバージョン5、6、7、8が影響を受ける可能性がある。修正は主に現在サポートされているPHP 8系ブランチ向けに提供される見込みであり、サポート終了 (EOL) となったバージョン (PHP 5.x、7.x、8.0、8.1) はベンダーによる公式パッチなしで脆弱なまま残される。
  • 業界での追跡: セキュリティ研究者により確認済み (watchTowrがCVE-2026-109618を再現、HuntressおよびFlorian Roth / process-watcherによる監視)。

根本原因

PHPのアップロード進捗ハンドラ (ext/session/session.c 内の php_session_rfc1867_callback) は、2つの生の zval * バケットポインタ (post_bytes_processed と current_file_bytes_processed) を、稼働中の HashTable 構造体内に直接保存する。

リクエスト処理中に以下が発生する:

  1. トリガー: 標準的なマルチパート POST リクエストが、デフォルト設定値 (session.upload_progress.enabled = 1) で進捗追跡を有効化する。
  2. 解放: 進捗更新サイクルがセッションデータを再読み込みする。関数 zend_hash_update() はデストラクタ zval_ptr_dtor を用いて以前のデータツリーを破棄し、メモリブロックを解放する。
  3. 再確保: 解放されたバケットメモリが再確保される。ダングリングポインタは、細工された zend_fcall_info および zend_internal_function 構造体を指すようにリダイレクトされる。
  4. 実行: PHPが zend_call_function() を呼び出し、その結果として任意のシステムコマンドが実行される。

検証と対象

  • 標準的な php-src ビルド (バージョン8.4.4および8.2.34を含む) で確認済み。
  • zval_ptr_dtor と zend_call_function 間のシンボルオフセット (--syms) を使用し、ディストリビューション固有のバイナリレイアウト (例: Debian Bookworm、Ubuntu Noble、Ubuntu Jammy) に適応する。

影響を受けるPHPバージョン

以下の表は、CVE-2026-109618 および CVE-2026-109619 の影響を受けるPHPバージョンと、そのサポートおよびパッチの状況をまとめたものである:

PHP ブランチステータス影響を受けるバージョン修正済み / 安全なバージョン備考
PHP 8.5サポート中 (アクティブ)< 8.5.128.5.12緊急セキュリティリリースが公開済み
PHP 8.4サポート中 (アクティブ)< 8.4.278.4.27緊急セキュリティリリースが公開済み
PHP 8.3サポート中 (アクティブ)< 8.3.368.3.36緊急セキュリティリリースが公開済み
PHP 8.2サポート中 (セキュリティのみ)< 8.2.358.2.35緊急セキュリティリリースが公開済み
PHP 8.1サポート終了 (EOL)すべての 8.1.x バージョン公式パッチなし (EOL)session.upload_progress.enabled = Off を設定するか、ELS/ディストリビューションのバックポートを使用
PHP 8.0サポート終了 (EOL)すべての 8.0.x バージョン公式パッチなし (EOL)公式サポート終了。設定による緩和が必須
PHP 7.xサポート終了 (EOL)すべての 7.0 - 7.4 バージョン公式パッチなし (EOL)コアの ext/session ロジックが脆弱。緊急の緩和またはアップグレードが必要
PHP 5.xサポート終了 (EOL)5.4.0+ (RFC1867 進捗追跡あり)公式パッチなし (EOL)公式サポート終了。ホストを分離するかアップロード進捗を無効化

[!WARNING] PHP 8.1 およびそれ以前のサポート終了 (EOL) バージョンは、PHP Foundation から公式のセキュリティパッチを受け取りません。これらの環境では、直ちに session.upload_progress.enabled = Off を適用するか、提供されている C ソースパッチを使用して PHP をソースから再ビルドしてください。


脅威の状況と検出ガイダンス

php2shell の悪用は、通常、PHP ワーカープロセス (php-fpm、php-cgi、php-cgi.exe、httpd、apache2) によって直接生成される異常な子プロセスとして現れます。

行動指標と不審な子プロセス

PHP ワーカープロセスが以下を実行していないか監視し、アラートを発してください:

  • インタラクティブシェル: /bin/sh、/bin/bash、cmd.exe、powershell.exe
  • スクリプトインタプリタ: python、perl
  • ネットワーク / 転送ユーティリティ: curl、wget、nc、certutil.exe
  • 一般的なリバースシェルパターン: /dev/tcp/、fsockopen、mkfifo
  • 即時偵察コマンド: whoami、id、uname -a、ipconfig

監視の推奨事項

エンドポイント検出エージェントを持たない Linux ベースの Web 環境では、Florian Roth 氏の無料ツール process-watcher を監視モードで実行し、異常な子プロセスの生成をリアルタイムで検出できます。


組織向けのアクション項目

  1. すべての PHP 環境を棚卸しする:
    • WordPress、Drupal、Joomla、Magento などのアプリケーションを実行している公開 Web サーバー。
    • 内部アプライアンス、ホスティングパネル (cPanel、Plesk)、および同梱のスタンドアロンバイナリ (php.exe、php-cgi.exe)。
  2. パッチ公開に備える:
    • PHP および下流の Linux ディストリビューションからの公式緊急パッチは、2026年10月21日 (水) 14:00 UTC (10:00 AM ET) 頃にリリースされる予定です。
    • リリース後は直ちにベンダーの更新を適用してください。
  3. サポート終了 (EOL) のインストールを分離する:
    • サポートされていないバージョン (PHP 5.x、7.x、8.0、8.1) を実行している環境は、公式のアップストリームバックポートを受け取れない可能性があります。
    • VPN 経由でアクセスを制限するか、厳格な WAF ルールを適用するか、パブリックインターネットへの公開を無効化してください。
  4. インシデント対応と調査:
    • 不審な子プロセスや予期しないファイルが検出された場合は、ホストを分離し、Web サーバー/PHP のログを保全してください。
    • Web ルートおよび一時ディレクトリ (/tmp、/var/tmp) を検査し、ドロップされたウェブシェルや一時的な実行痕跡を確認してください。

概念実証 (PoC)

CVE-2026-109618 を標的とした、完全自動化されたワンクリックリモートエクスプロイトが poc_109618.py で利用可能です。このエクスプロイトは、平文の HTTP リクエストを使用して ASLR をリモートでバイパスし、信頼性の高い任意コマンド実行を実現します。

エクスプロイトのアーキテクチャとステージ

攻撃チェーンは、HTTP を介した 4 つの連続するステージで構成されています:

  1. ステージ 0 — HTTP ワーカーローテーション: 新しく生成されたワーカーチャイルドでクリーンなヒープ状態を確保するため、HTTP 経由で現在の prefork ワーカーを中断します。
  2. ステージ 1 — ヒープベースのリーク: 過大なマルチパートフィールド(--huge-mb、デフォルト 12MB)によってメモリ不足(OOM)状態を誘発し、Set-Cookie: PHPSESSID を介して未初期化メモリのリークを引き起こし、Zend MM の 2MB アラインメントされたチャンクベースを抽出します。
  3. ステージ 2 — Libphp ベースのリーク: セッションのシリアライズ / HashTable 割り当てのアラインメントを悪用して、Set-Cookie を介して ZVAL_PTR_DTOR 関数ポインタをリークし、libphp.so のベースアドレスを計算します。
  4. ステージ 3 — 偽リファレンスと任意実行: 167 バイトの zend_string 内に埋め込まれた偽の HashTable 構造体を偽造し、pDestructor を libphp.so 内の zif_system に直接向けます。細工されたリファレンスは PS(http_session_vars) を上書きします。PHP がセッションデータを解放するとき、zif_system が指定されたコマンドを実行します。

[!NOTE] コマンドは 167 バイトのライブな zend_string キャリア(0x98 ヘッダー + NUL バイト制限)内に直接埋め込まれるため、インラインコマンド文字列は最大 14 バイト(MAX_CMD = 14)に制限されます。より長いコマンドの場合は、sh</tmp/c(8 バイト)や sh</out/c のような短いトリガーを経由してチェーンしてください。

ターゲット要件

デフォルトのエクスプロイトプロファイルは、以下の設定で Apache prefork 下の mod_php をターゲットにします:

  • display_errors = 1
  • memory_limit = 8M(または --huge-mb より十分に低い値)
  • max_input_vars = 1000
  • session.use_cookies = 1、session.use_strict_mode = 0
  • session.upload_progress.enabled = 1
  • シングルワーカー / prefork プロセスモデル

使用方法とパラメータ

基本的な実行
# Default command execution against target URL
python3 poc_109618.py -u http://127.0.0.1:8088/index.php

# Execute a custom command (max 14 bytes) and verify via local proof file
python3 poc_109618.py -u http://127.0.0.1:8088/index.php -c 'id>/out/p1' --proof-file out/p1

# Execute command writing to webroot and verify via HTTP GET fetch
python3 poc_109618.py -u http://127.0.0.1:8088/index.php -c 'id>p1.txt' --fetch /p1.txt
ツールをダウンロード