
CVE-2026-7275 の PoC & ドキュメント: Moodle Google Drive Repository (repository_googledocs) — 未パッチの Moodle バージョンで RCE につながる可能性のあるパストラバーサル / 任意ファイル書き込み。
CVE-2026-7275 の PoC とドキュメント: Moodle Google Drive リポジトリ (repository_googledocs) — パッチ未適用の Moodle バージョンで RCE につながる可能性のある パストラバーサル / 任意ファイル書き込み。
免責事項: 許可されたセキュリティ調査、監査、および防御的教育のみを目的としています。書面による許可なしにシステムに対して使用しないでください。
| フィールド | 値 |
|---|---|
| CVE | CVE-2026-7275 |
| アドバイザリ | MSA-26-0006 |
| トラッカー | MDL-88423 |
| コンポーネント | repository_googledocs |
| CWE | CWE-22 (Path Traversal) |
| 深刻度 | 緊急 (CVSS ~9.1) |
| 影響を受けるバージョン | Moodle 5.1.0–5.1.3, 5.0.0–5.0.6, 4.5.0–4.5.10 |
| 修正バージョン | 5.1.4, 5.0.7, 4.5.11 |
Moodle の Google Drive プラグインは、ファイル名メタデータ ($originalfile->name) を使用して Google API からファイルをダウンロードします。パッチ適用前は、この名前は サニタイズなしで prepare_file() に渡されていたため、../../../../public/shell.php のようなペイロードによって一時ディレクトリの外にファイルを書き込むことができ、webroot が PHP を実行する場合は RCE につながる可能性がありました。
絶対パスを知る必要はありません — ランダムな一時フォルダからの相対トラバーサル (../ の繰り返し) で十分です。
├── README.md ← ringkasan (file ini)
├── CONTRIBUTORS.md ← 0xNuts + Cursor
├── EXPLOIT.md ← attack chain, payload, prerequisites
├── PATCH.md ← analisis patch & mitigasi
└── poc/
└── demo_path_traversal.py ← demo lokal pre-patch vs post-patch
python poc/demo_path_traversal.py
出力は、(パッチ適用前の) ESCAPE パスと (パッチ適用後の) contained パスを示します。
// public/repository/lib.php — prepare_file()
return sprintf('%s/%s', make_request_directory(), clean_param($filename, PARAM_FILE));
詳細: PATCH.md
| 0xNuts | @ExDev994 — 主任研究者、PoC、ドキュメント |
| Cursor | cursor.com — 共同研究者、静的解析、エクスプロイト & パッチの執筆 |
詳細: CONTRIBUTORS.md
/*
* CVE-2026-7275 — break to understand, patch to defend.
* Contributors: 0xNuts (@ExDev994) + Cursor
*/
| 条件 | 詳細 |
|---|
| Moodle アカウント | 認証済みユーザー |
| ケイパビリティ | repository/googledocs:view |
| OAuth | Moodle ユーザーにリンクされた Google Drive |
| プラグイン | repository_googledocs が有効 |
| バージョン | 未パッチ (< 5.1.4 / < 5.0.7 / < 4.5.11) |