celeboy711-hue/CVE-2026-29041
GitHub: celeboy711-hue/CVE-2026-29041
针对 Chamilo LMS 1.11.32 的认证后文件上传漏洞 PoC,演示如何以学生低权限账户绕过 MIME 检测实现远程代码执行。
Stars: 0 | Forks: 0
# CVE-2026-29041 — Chamilo LMS 1.11.32 中经由无限制文件上传实现的认证后 RCE
/` → **可通过浏览器直接执行**
## 💣 概念验证 (PoC)
运行完整的 exploit,以学生身份登录并自动执行文件上传
运行 Python 完整 exploit 后,我们可以在 http://localhost:8081/app/upload/users/3/3/my_fileszhxoxgwj.php?cmd=id 找到上传的 web shell
## 🛡️ 影响
成功利用此漏洞可导致从学生级别账户实现**完全服务器沦陷**:
- 🔴 **远程代码执行 (RCE)** — 通过 web shell 执行任意操作系统命令
- 🔴 **数据窃取** — 完全访问应用程序数据库凭据和文件
- 🔴 **横向移动** — 从沦陷服务器 pivoting 到内部网络
- 🔴 **持久化** — 能够在 Web 可访问目录中植入后门
- 🔴 **服务中断** — 修改或删除课程内容和用户数据
**CIA 影响:机密性、完整性和可用性的完全丧失。**
## 🔧 修复建议
▪ **强制执行严格的文件扩展名白名单**
只应接受明确允许的图片文件扩展名(如 .jpg、.png、.gif)。
无论 MIME 类型如何,都必须拒绝上传带有可执行扩展名(如 .php、.phtml 或 .phar)的文件。
▪ **不要仅依赖 MIME 类型验证**
不应将使用 mime_content_type() 等函数进行的 MIME 类型检查作为主要的安全控制措施,因为它们可以通过构造的文件头绕过。MIME 验证应仅作为辅助检查。
▪ **将上传的文件存储在 Web 可访问目录之外**
上传的内容应存储在无法通过 Web 服务器直接访问的目录中。如果需要公开访问,应通过受控的处理程序提供文件服务,而非直接访问。
## 📄 参考资料
- [Chamilo LMS 官方网站](https://chamilo.org)
- [CWE-434: 无限制上传危险类型文件](https://cwe.mitre.org/data/definitions/434.html)
- [OWASP: 无限制文件上传](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload)
- [CVSS v3.1 计算器](https://www.first.org/cvss/calculator/3.1)
## 👤 作者
**MENG HOKSENG**
独立安全研究员
## ⚠️ 法律免责声明
本项目仅用于**教育和授权安全研究目的**。作者不对因使用此 exploit 而导致的任何误用或损害负责。在进行安全评估之前,请务必获得明确的书面授权。
运行 Python 完整 exploit 后,我们可以在 http://localhost:8081/app/upload/users/3/3/my_fileszhxoxgwj.php?cmd=id 找到上传的 web shell
## 🛡️ 影响
成功利用此漏洞可导致从学生级别账户实现**完全服务器沦陷**:
- 🔴 **远程代码执行 (RCE)** — 通过 web shell 执行任意操作系统命令
- 🔴 **数据窃取** — 完全访问应用程序数据库凭据和文件
- 🔴 **横向移动** — 从沦陷服务器 pivoting 到内部网络
- 🔴 **持久化** — 能够在 Web 可访问目录中植入后门
- 🔴 **服务中断** — 修改或删除课程内容和用户数据
**CIA 影响:机密性、完整性和可用性的完全丧失。**
## 🔧 修复建议
▪ **强制执行严格的文件扩展名白名单**
只应接受明确允许的图片文件扩展名(如 .jpg、.png、.gif)。
无论 MIME 类型如何,都必须拒绝上传带有可执行扩展名(如 .php、.phtml 或 .phar)的文件。
▪ **不要仅依赖 MIME 类型验证**
不应将使用 mime_content_type() 等函数进行的 MIME 类型检查作为主要的安全控制措施,因为它们可以通过构造的文件头绕过。MIME 验证应仅作为辅助检查。
▪ **将上传的文件存储在 Web 可访问目录之外**
上传的内容应存储在无法通过 Web 服务器直接访问的目录中。如果需要公开访问,应通过受控的处理程序提供文件服务,而非直接访问。
## 📄 参考资料
- [Chamilo LMS 官方网站](https://chamilo.org)
- [CWE-434: 无限制上传危险类型文件](https://cwe.mitre.org/data/definitions/434.html)
- [OWASP: 无限制文件上传](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload)
- [CVSS v3.1 计算器](https://www.first.org/cvss/calculator/3.1)
## 👤 作者
**MENG HOKSENG**
独立安全研究员
## ⚠️ 法律免责声明
本项目仅用于**教育和授权安全研究目的**。作者不对因使用此 exploit 而导致的任何误用或损害负责。在进行安全评估之前,请务必获得明确的书面授权。标签:Ajax文件上传, Chamilo LMS, CISA项目, CVE-2026-29041, CVSS 8.8, CWE-434, Magic Bytes, MIME类型验证绕过, PHP安全, RCE, Web安全, 任意文件上传, 协议分析, 学习管理系统, 提示词注入, 权限提升, 编程工具, 蓝队分析, 认证后漏洞, 远程代码执行, 逆向工具, 高危漏洞