Chamilo LMS 11 个 0day:未认证 SQLi 到 pre-auth RCE 全链
Chamilo LMS 11 个 0day:未认证 SQLi 到 pre-auth RCE 全链
一句话:Quarkslab 对开源 LMS Chamilo 的审计一次收获 11 个 0day(CVE-2026-61578 等
11 个),并把未认证 SQLi、AJAX 未授权用户更新、文件上传等独立缺陷串成最新版的
完整 pre-auth RCE 链,附 exploit.py。
要点:
- 入口未认证 SQLi:
model.ajax.php a=get_work_student的 JSONfilters.groupOp直接拼进
WHERE;只需一个可从课程列表推导的cidReq即可盲注(time-based) user_manager.ajax.php a=update_users未鉴权即可改任意用户 email → 配合密码重置
劫持 admin 账号;SQLi 同时用来改前备份/改后恢复 admin 记录,做到无痕后门- 链条继续经上传/包含等原语到 RCE(共 11 个 CVE,多数附 GHSA 与 PoC);exploit.py、
payload 在原文 resources 目录公开 - 方法论看点:人工审计与 LLM 分工——人工找到 SQLi 与盲注优化,LLM 负责生成可用 PoC
与部分 sink 发现
原语抽象:无内存破坏的"逻辑原语串链"——SQLi(读写)× 缺失鉴权(改任意用户
email)× 密码重置(劫持)× 上传/包含(RCE),单点都到不了 RCE,组合可以。
亲戚手法:pre-auth 组合链家族(与 pre-auth-rce-enterprise-java-bonita-ofbiz
同思路:入口层弱点 + 存量 sink);差异:全部是逻辑/鉴权缺陷,且 SQLi 反过来用于
备份恢复 admin 记录实现无痕,链自带反取证。
防御启示:AJAX 端点是鉴权盲区重灾区,路由保护要 denied-by-default 全量覆盖;
审计时"改 email 改密码"类端点要按敏感操作单独鉴权。
原文: https://blog.quarkslab.com/chamilo-lms-its-raining-0days-hallelujah-its-raining-0days.html
来源发布时间: 2026-09-01