
CVE-2026-109618 用の Python エクスプロイト: PHP の session.upload_progress ヒープ破壊を悪用して zend_call_function を上書きし、リモートコマンド実行を達成します。
██████╗ ██╗ ██╗██████╗ ██████╗ ███████╗██╗ ██╗███████╗██╗ ██╗ ██╔══██╗ ██║ ██║██╔══██╗╚════██╗██╔════╝██║ ██║██╔════╝██║ ██║ ██████╔╝ ███████║██████╔╝ █████╔╝███████╗███████║█████╗ ██║ ██║ ██╔═══╝ ██╔══██║██╔═══╝ ██╔═══╝ ╚════██║██╔══██║██╔══╝ ██║ ██║ ██║ ██║ ██║██║ ███████╗███████║██║ ██║███████╗███████╗███████╗ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
PHP セッションアップロード進捗リモートコード実行エクスプロイト (CVE-2026-109618)
CVE-2026-109618 は、セッションを介したファイルアップロード進捗追跡 (session.upload_progress) に関連する PHP エンジンの重大なメモリ破壊およびロジック脆弱性です。
この欠陥は、リクエストの最初のフェーズ (FILE_START) で外部ポインタ post_bytes_processed がキャッシュされる方法にあり、後続のアップロードイベントで適切に更新されません。競合状態、Hash ツリーの破壊的な解放 (HashTable.pDestructor = zval_ptr_dtor)、およびパディングされた構造体 (t[] パックドナチュラルテーブル) を用いた制御されたヒープスプレーを組み合わせることで、内部エンジンの関数ポインタ (例えば zend_call_function) を上書きし、実行フローを任意のコマンドを伴う system() へリダイレクトすることが可能になります。
このツールは、コンソールインターフェース、バナー、およびインタラクティブパネルをレンダリングするために rich ライブラリを必要とします。
git clone [https://github.com/Ghxstsec/php2shell-poc.git](https://github.com/Ghxstsec/php2shell-poc.git)
cd php2shell-poc
必要な依存関係をインストールする
pip install -r requirements.txt
(または単に: pip install rich)
🚀 使用方法と例
対象システムに適したパラメータを指定してスクリプトを実行します:
python3 php2shell.py -u "[https://target-domain.com/path/index.php](https://target-domain.com/path/index.php)" -c "uname -a; id"
コマンドラインオプション パラメータ 説明 デフォルト値 -u, --url 脆弱な PHP エンドポイントの完全な URL 必須 -c, --command オペレーティングシステム上で実行するコマンド uname -a; id; echo JACKALPOC --sid カスタムセッション識別子 (PHPSESSID) a1b2c3d4e5f6a7b8c9d0e1f2a3 --stall ストール時間 (秒) 1.35 --dtor リークした zval_ptr_dtor のメモリアドレス (16 進数/整数) 0 --call zend_call_function の明示的なメモリアドレス オフセットにより計算 --dry シミュレーションモード: バイナリペイロードを生成してディスクに保存 False 🛠️ 技術的詳細
ヒープスプレー: 149 個の要素からなるブロック (320 バイトのビンを備えたパック済み自然テーブル) を利用して、解放されたメモリブロックが確実に再利用されるようにします。
SAPI サポート: CGI/FastCGI アーキテクチャおよび互換性のあるフロントエンドサーバー (LiteSpeed LSAPI / Apache / Nginx など) で評価される環境向けに設計されています。
ドライラン: --dry フラグを使用すると、生成されたマルチパートペイロードの正確なバイトストリームをダンプして、フォレンジック分析やデバッグに利用できます。
🛠️ 技術的詳細
影響を受けるバージョン: PHP 5.4 から PHP 8.x まで (PHP メンテナーにより 8.2、8.3、8.4、8.5 向けのパッチがリリース済み)。
ヒープスプレー: 149 個の要素からなるブロック (320 バイトのビンを備えたパック済み自然テーブル) を利用して、解放されたメモリブロックが確実に再利用されるようにします。
SAPI サポート: CGI/FastCGI アーキテクチャおよび互換性のあるフロントエンドサーバー (LiteSpeed LSAPI / Apache / Nginx など) で評価される環境向けに設計されています。
ドライラン: --dry フラグを使用すると、生成されたマルチパートペイロードの正確なバイトストリームをダンプして、フォレンジック分析やデバッグに利用できます。
📦 requirements.txt ファイル
rich>=13.0.0
urllib3>=1.26.0
⚠️ 法的通知(免責事項)
このソフトウェアは、教育目的、セキュリティ研究、および許可された監査用途(ペネトレーションテスト)のためにのみ作成されています。作者(Ghxstsec)は、許可されていないシステム上でのこのスクリプトの不適切な使用によって生じる悪用や損害について一切の責任を負いません。