Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-35196 — 第二个 CVE 仍是远程代码执行 | Kitploit
工具/GitHubGitHub/kx00007/cve-2026-35196
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHubkx00007/cve-2026-35196

CVE-2026-35196

第二个 CVE 仍是远程代码执行

查看仓库
13个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-35196 · Chamilo LMS · 操作系统命令注入 → RCE


CVE CVSS CWE Auth Type Shell



研究人员: K
披露类型: 负责任披露
状态: 已修复 受影响产品: Chamilo LMS < 2.0(已在 v1.11.32 上确认)


📋 漏洞摘要


🔍 描述

Chamilo LMS v1.11.32 的 main/inc/ajax/gradebook.ajax.php 中的 export_all_certificates 操作存在一个严重的操作系统命令注入漏洞。

应用程序通过 api_get_course_id() 获取课程代码,该函数直接读取 $_SESSION['_cid']。这个来自会话的值被未经净化地拼接到 shell_exec() 调用中——没有使用 escapeshellarg(),没有白名单验证,也没有类型强制。

能够操纵或污染其会话 _cid 变量的攻击者(通过会话污染、IDOR 链或其他会话操纵原语)可以注入任意 shell 元字符,并以 Web 服务器用户(www-data)身份实现完全远程代码执行。


🧩 根因分析

漏洞文件: main/inc/ajax/gradebook.ajax.php
漏洞函数: export_all_certificates

当用户触发 export_all_certificates 操作时,脚本会尝试运行一个后台进程来处理证书:

root@kitploit:~
$courseCode = api_get_course_id(); // Retrieves the value from $_SESSION['_cid']
$sessionId = api_get_session_id();
// ...
$commandScript = api_get_path(SYS_CODE_PATH).'gradebook/cli/export_all_certificates.php';
$userList = implode(',', $userList);

// Flaw: Variables like $courseCode are passed directly to the shell without escapeshellarg()
shell_exec("php $commandScript $courseCode $sessionId $categoryId $userList > /dev/null &");

由于应用程序隐式信任会话变量的内容,并且未能在将其发送到系统 shell 之前进行适当转义,因此拥有被操纵会话的攻击者可以附加并执行恶意命令。例如,如果 _cid 包含 "; touch /tmp/remote_code_by_k; #",则 bash/sh shell 解释的命令变为:

root@kitploit:~
php /var/www/chamilo/main/gradebook/cli/export_all_certificates.php ; touch /tmp/remote_code_by_k; # ... > /dev/null &

shell 会执行 CLI 脚本,然后执行被注入的载荷,并忽略原命令字符串的其余部分。

💣 概念验证(PoC)

  1. 会话污染: 攻击者必须首先影响 $_SESSION['_cid'] 变量。这可以通过将该缺陷与会话污染漏洞链式利用,或通过应用程序其他位置的 IDOR 或不安全的参数处理来操纵课程代码值以更新其会话上下文来实现。
  2. 载荷注入: 将会话变量 _cid 设置为:"; [MALICIOUS_COMMAND]; #"
  3. 执行: 携带被污染的会话 Cookie,向 /main/inc/ajax/gradebook.ajax.php?a=export_all_certificates&cat_id=1 发送 GET 请求。
  4. 结果: 服务器会以 Web 应用程序用户(www-data)的权限盲目执行被注入的命令。

📊 影响分析

维度

🛡️ 修复建议

  • 应用 escapeshellarg(): 在将 $courseCode、$sessionId 和 $userList 等所有用户派生变量传递给 shell_exec() 之前,使用 PHP 的 escapeshellarg() 包裹它们,以中和任意的操作系统元字符。
  • 严格的会话验证: 确保存储在会话状态中的变量(例如 $_SESSION['_cid'])具有严格的类型并经过净化,以便在入口点阻止潜在的“会话污染”或 IDOR 链式攻击。
  • 强制最小权限: 为 Web 服务器服务(www-data)配置严格的文件系统写入权限,并限制应用程序对必要的 Linux shell 二进制文件的访问,以降低漏洞利用后的能力。

🧪 环境

📎 参考资料

  • Chamilo LMS 官方仓库
  • CWE-78:操作系统命令注入
  • OWASP:命令注入
  • CVE-2026-29041 — 同一研究人员发现的先前 Chamilo RCE(CWE-434,CVSS 8.8)

👤 研究人员

root@kitploit:~
Handle  : K
GitHub  : https://github.com/kx00007
Focus   : Server-Side Vulnerability RCE, CVE Hunting, Vulnerability Research, Exploit Development
Prior   : CVE-2026-29041 (Chamilo LMS — Authenticated RCE via File Upload)

⚡Try Harder.

下载工具
字段详情
产品Chamilo LMS
受影响版本< 2.0(已在 v1.11.32 上确认)
漏洞类型操作系统命令注入
CWECWE-78 — 对操作系统命令中特殊元素的中和不当
CVSSv3.1 评分8.8(高危)
向量CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
需要认证是(任意拥有被污染会话的已认证用户)
利用类型已认证远程代码执行
漏洞文件main/inc/ajax/gradebook.ajax.php
影响
机密性完全读取权限 — 源代码、配置、数据库凭据、/etc/passwd
完整性任意文件写入、Webshell 部署、数据库篡改
可用性服务中断、文件系统破坏、勒索软件部署
范围Web 服务器进程(www-data);通过凭据泄露存在横向移动的可能性
组件详情
操作系统Ubuntu Server (Docker)
Web 服务器Apache / Nginx
PHP7.x / 8.x
应用程序Chamilo LMS v1.11.32-v2.0
Shell/bin/sh → bash