
CVE-2025-69906 の技術的分析と概念実証。Monstra CMS 3.0.4 における任意ファイルアップロードの脆弱性で、ブラックリスト回避手法を介したリモートコード実行に至る。
make it a readme.md to paste into it
作者: David PS Abraham
日付: 2026年2月5日
深刻度: 重要 - リモートコード実行(CVSS 8.8+)
CWE: 434(危険なタイプのファイルのアップロード制限の欠如)
Monstra CMS v3.0.4 の Files Manager プラグイン(plugins/box/filesmanager/filesmanager.admin.php)は、ブラックリストベースのファイル拡張子検証を実装しており、アップロードされたファイルを Web アクセス可能な /public/files/ ディレクトリに直接保存するため、標準的な Apache/PHP 環境下でリモートコード実行が可能です。
根本的な欠陥(filesmanager.admin.php の ~150-220行目):
// WEAK BLACKLIST VALIDATION
$blacklist = array('.php', '.php3', '.php4', '.php5', '.phtml', '.pl', '.py', '.jsp', '.asp', '.sh', '.cgi');
$bypass = true;
foreach ($blacklist as $bad) {
if (strpos(strtolower($filename), $bad) !== false) {
$bypass = false;
break;
}
}
if ($bypass) {
// DIRECT WEB-ROOT WRITE - No sanitization
$upload_path = BASE_PATH . DS . 'public' . DS . 'files' . DS;
move_uploaded_file($file['tmp_name'], $upload_path . $filename);
// http://target/public/files/shell.PHP executes!
}
| 影響 | 説明 |
|---|---|
| RCE | アップロードしたWebシェルによる任意のPHP実行 |
Monstra CMS <= 3.0.4
Path: plugins/box/filesmanager/filesmanager.admin.php
Repo: https://github.com/monstra-cms/monstra/tree/dev/plugins/box/filesmanager
2026-02-05: CVE-2025-69906 assigned by MITRE
2026-02-05: Public disclosure
1. Disable Files Manager plugin
2. Whitelist ALLOWED extensions only (image/png, image/jpeg)
3. Rename uploads: uniqid() + .jpg
4. Store outside web root
5. Migrate to maintained CMS
発見者: David PS Abraham(サイバーセキュリティ研究者)
CVE割り当てに従った責任ある開示。実際の悪用は行われていません。
リポジトリの通知によると、プロジェクトは2018年以降メンテナンスされていません。
[1]
この内容をすべてコピー → リポジトリのREADME.mdに貼り付け → コミット&プッシュ → ソーシャルチャンネルで共有。
引用: [1] 1000279995.jpg https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/attachments/images/62532667/8d8c801d-6e5c-4292-b88f-4530423fb53a/1000279995.jpg
| 欠陥 | バイパス例 | 結果 |
|---|
| 大文字小文字の区別 | shell.PHP, shell.pHp | ✅ 実行可能 |
| 二重拡張子 | shell.php.jpg | ✅ 実行可能 |
| ヌルバイト | shell.php%00.jpg | ✅ 実行可能 |
| 非標準PHP | shell.php7, shell.phtml | ✅ 実行可能 |
| 管理者認証 → サーバー侵害 |
| 情報漏洩 | <?php echo file_get_contents('../config.php'); ?> によるファイル読み取り |
| 攻撃ベクトル | リモート、認証あり(Files Managerインターフェース) |