⚠️ 本仓库仅用于教育和防御性安全目的。仅在你拥有或明确授权评估的系统上进行测试。不要将此项目用于第三方系统。
此 PoC 演示了 CVE-2026-48907,这是一个影响 Joomla Content Editor (JCE) 2.9.99.4 及以下版本的未认证 RCE 漏洞。
它利用了 JCE 配置文件导入功能中缺失的身份验证和校验,
它与 BIBIL_0DAY 的原始 PoC 不同,因为它利用的事实是:JCE 的配置文件导入会将上传的配置文件暂存到 tmp/ 目录,且不进行身份验证,也不校验文件格式或内容。由于 Joomla 默认配置允许从 tmp/ 目录执行 PHP,这导致了一条直接的 RCE 路径。
限制 PHP 执行,甚至限制对 tmp/ 目录的公共访问,即可轻松缓解此攻击向量。
强烈建议 Joomla 用户加固其 Web 服务器配置,并将 JCE 更新到 >=2.9.99.5。
vulnerable/ – 使用官方 joomla:latest Docker 镜像部署 Joomla 实例,并安装 JCE 2.9.99.4(存在漏洞的版本)。监听于 127.0.0.1:9999patched/ – 使用官方 joomla:latest Docker 镜像部署 Joomla 实例,并安装 JCE 2.9.99.5(已修补的版本)。监听于 127.0.0.1:9999运行
docker compose -f vulnerable/docker-compose.yaml up
python3 poc.py
输出:
{"success":true,"message":"","messages":{"info":["0 Profile(s) imported successfully"]},"data":{"redirect":"\/index.php\/component\/jce?view=profiles"}}
>> 3105
[!!!!!] PHP payload was executed ! Server is vulnerable to cve-2026-48907 !
本项目旨在帮助研究人员、防御者和管理员在受控环境中了解该漏洞并验证修复措施。作者不对任何滥用此材料的行为负责。