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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
php2shell-poc — CVE-2026-109618/109619 — 5つのRCEチェーン + 検出ルール(Suricata、Sigma、ModSecurity)。PHP session.upload_progress の認証前エクスプロイト研究。 | Kitploit
ツール/GitHubGitHub/ikow/php2shell-poc
メモリフォレンジック脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティ論文と研究ペイロード開発ラボと実践
GitHubikow/php2shell-poc

php2shell-poc

CVE-2026-109618/109619 — 5つのRCEチェーン + 検出ルール(Suricata、Sigma、ModSecurity)。PHP session.upload_progress の認証前エクスプロイト研究。

リポジトリを見る
2.0k6551.6k14日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

php2shell

php2shell

CVE-2026-109618 & CVE-2026-109619 — PHP Pre-Auth RCE Exploit & Detection Toolkit

Stars CVSS 9.2 Affected Versions Fixed Versions Exploits

Exploits · Detection · Lab · Writeup


PHPのsession.upload_progressとZendエンジンのOOMベイルアウトを悪用する5つの独立したRCEチェーン。14年にわたる脆弱なコード — PHP 5.4.0(2012年)から8.5.11まで。Pre-auth。一部のチェーンではアプリケーション側の脆弱性を必要としない。

全ウェブサイトの78% に影響 — WordPress(43%)、Joomla、Drupal、Laravel、Magento、およびすべてのデフォルトPHPインストールを含む。

著者: Qi Deng  |  Writeup: Substack  |  日付: 2026-10-21

CVEの詳細

CVEGHSACVSS説明
CVE-2026-109618GHSA-w8hw-w9fx-j79w9.2OOM → longjmp()によりZendエンジンの状態が無効化 → RCE
CVE-2026-109619GHSA-6wmf-4rv5-p3rp9.2FPMワーカーのリクエスト間でグローバル状態が陳腐化 → UAF → RCE

パッチ: Commit 3584a98 — Zendエンジン全体で300ファイルが変更。

攻撃チェーン

チェーンベクターPre-auth条件SAPI
Aセッションインジェクション + LFIはいアプリに任意のLFIシンクがあるすべて
Bvar_destroy UAF → ハンドラ上書きいいえアプリがunserialize()を呼び出すすべて
Cハンドラ不一致 → __destructはいserialize_handlerが異なる2つのディレクトリFPM
DOOM破壊 → 陳腐化したEG()はいなし — 任意のエンドポイントmod_php
EFPMセッションOOM → 陳腐化したBG()はいプロデューサー: 任意のsession_start()エンドポイント; コンシューマー: 任意のエンドポイントFPM

チェーンDが最も深刻: 任意のApache mod_phpインストールに対するゼロ依存のPre-auth RCE。

チェーンEはFPM上でほぼ同様に広範: プロデューサーはsession_start()を呼び出す任意のエンドポイントを必要とし(ほぼ普遍的 — WordPress、Laravel、Joomla、Drupalはいずれも該当)、コンシューマーは任意のPHPエンドポイントでよい — rfc1867のupload_progressハンドラはアプリケーションコードより前にSAPI起動中に実行される。検証済み: nosession.php(コード内にsession_start()なし)が陳腐化したBG(unserialize)状態を消費すると502クラッシュを引き起こす。

Exploits

3つのRCEエクスプロイト(チェーンA、B、C)がexploit/に含まれている:

ファイルチェーン動作内容
chain_a_session_lfi.pyAアップロードファイル名経由でPHPコードを注入 → LFIがセッションファイルをインクルード → RCE
chain_b_uaf_rce.phpBvar_destroy UAF → EG()経由でzif_systemを発見 → /proc/self/mem経由でvar_dumpハンドラを上書き → RCE
chain_c_mismatch_rce.pyCFPMワーカーのPS(serializer)を汚染 → ファイル名経由でシリアライズオブジェクトを注入 → デコード失敗時に__destructが発火 → RCE

チェーンDとEのエクスプロイトは有料購読者が利用できます。

# Chain A: Session injection + LFI → RCE
python3 exploit/chain_a_session_lfi.py --host TARGET --port 80 --command 'id'

# Chain B: var_destroy UAF → RCE (run on target or via uploaded webshell)
php exploit/chain_b_uaf_rce.php

# Chain C: Handler mismatch → __destruct → RCE
python3 exploit/chain_c_mismatch_rce.py --host TARGET --port 80 --command 'id'

検出ルール

detection/ にある事前構築済みの IDS / WAF / SIEM ルール:

ファイル形式シグネチャ
php2shell.rulesSuricata / Snort13 ルール — リクエスト、レスポンス、偵察
php2shell.yamlSigma5 ルール — Web ログ、プロセス生成、ファイルイベント
modsecurity.confModSecurity v2/v37 ルール — Apache/Nginx 向けドロップイン
php2shell.luaOpenResty Lua軽量リバースプロキシモジュール

最速の緩和策: multipart POST ボディ内の PHP_SESSION_UPLOAD_PROGRESS をブロックする。正当な用途はほぼゼロであり、両方の CVE における主要な攻撃ベクトルをカバーする。

クイックスタート

git clone https://github.com/ikow/php2shell-poc.git && cd php2shell-poc

# Start the lab (PHP-FPM + nginx + Apache mod_php)
cd lab && docker compose up -d

# Verify each chain
python3 ../poc/verify_session_injection.py --target http://127.0.0.1:18080
python3 ../poc/verify_handler_mismatch.py --target http://127.0.0.1:18080
python3 ../poc/verify_oom_trigger.py --host 127.0.0.1 --port 18081
python3 ../poc/verify_fpm_stale_state.py --target http://127.0.0.1:18080

# Run an exploit
python3 ../exploit/chain_a_session_lfi.py --host 127.0.0.1 --port 18080 --command 'id'

リポジトリ構造

php2shell-poc/
├── exploit/
│   ├── chain_a_session_lfi.py        # RCE: session injection + LFI
│   ├── chain_b_uaf_rce.php           # RCE: var_destroy UAF → handler overwrite
│   └── chain_c_mismatch_rce.py       # RCE: handler mismatch → __destruct
├── detection/
│   ├── php2shell.rules               # Suricata / Snort IDS rules
│   ├── php2shell.yaml                # Sigma SIEM detection rules
│   ├── modsecurity.conf              # ModSecurity WAF rules
│   └── php2shell.lua                 # OpenResty / Nginx Lua WAF module
├── poc/
│   ├── verify_session_injection.py   # Verify Chain A
│   ├── verify_uaf_asan.php           # Verify Chain B (ASAN)
│   ├── verify_handler_mismatch.py    # Verify Chain C
│   ├── verify_oom_trigger.py         # Verify Chain D
│   └── verify_fpm_stale_state.py     # Verify Chain E
├── lab/
│   ├── docker-compose.yml            # PHP-FPM + nginx + Apache mod_php
│   ├── setup.sh                      # One-click lab setup
│   └── php.ini / php-apache.ini      # Vulnerable PHP configs
└── docs/
    ├── ANALYSIS.md                   # Full technical analysis
    └── substack_article.md           # Writeup source

緩和策

; Immediate — reduces attack surface
session.upload_progress.enabled = Off
session.use_only_cookies = On

唯一の完全な修正はPHPを 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12+ にパッチすることです。OOMによる破損(チェーンD)はZendエンジンのコアにあり、INI設定では修正できません。

下流への影響

Wizは標準的なコンテナイメージ上で事前認証RCEを実証しました:

プラットフォーム脆弱備考
WordPressはいコアはPHPセッションを使用しませんが、WooCommerceや多くのプラグインが使用しています
JoomlaはいデフォルトでネイティブPHPセッションを使用します
DrupalはいデフォルトでネイティブPHPセッションを使用します
Magentoはいメンテナンスモードでも脆弱です
LaravelはいPendingBroadcast は既知の __destruct ガジェットです

参考資料

  • PHPセキュリティアドバイザリ
  • GHSA-w8hw-w9fx-j79w — CVE-2026-109618
  • GHSA-6wmf-4rv5-p3rp — CVE-2026-109619
  • パッチコミット 3584a98 — 300ファイル、Zendエンジン + 拡張機能
  • Cloudflare WAFカバレッジ
  • Sansecの分析 — PHPSESSIDヒープリークの発見
  • Wizの下流への影響
  • Corelightの検出 — Zeek + Suricataコミュニティルール

免責事項

このリポジトリは許可されたセキュリティテストおよび教育目的のみを対象としています。チェーンDおよびE(ゼロ依存RCE)のエクスプロイトコードは、解説記事の有料購読者が利用できます。

ライセンス

MIT


ツールをダウンロード