CVE-2025-61765
python-socketio 在某些多服务器部署中存在因恶意 pickle 反序列化而导致的任意 Python 代码执行(RCE)漏洞
- 已发布
- 2025年10月6日
- 已更新
- 2025年10月22日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月8日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:L低 · 未来 30 天
- 百分位
- 40.6%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
python-socketio 是 Socket.IO 实时客户端和服务器的 Python 实现。python-socketio 5.14.0 之前版本中存在一个远程代码执行漏洞,在多服务器部署中,如果攻击者此前已获得服务器用于内部通信的消息队列的访问权限,则可通过恶意 pickle 反序列化执行任意 Python 代码。当 Socket.IO 服务器配置为使用 Redis 等消息队列后端进行服务器间通信时,服务器之间发送的消息会使用 Python `pickle` 模块进行编码。当服务器通过消息队列收到其中一条消息时,它会假定该消息可信并立即对其反序列化。该漏洞源于使用 Python 的 `pickle.loads()` 函数对消息进行反序列化。攻击者事先获得消息队列的访问权限后,可以向 python-socketio 服务器发送构造好的 pickle 载荷,该载荷在反序列化期间通过 Python 的 `__reduce__` 方法执行任意代码。此漏洞仅影响消息队列已遭入侵的部署。该攻击可导致攻击者在 Socket.IO 服务器进程的上下文中并以该进程的权限执行任意代码。不使用消息队列的单服务器系统,以及使用安全消息队列的多服务器系统不受影响。除了确保在消息队列部署中遵循标准安全实践外,python-socketio 包的用户还可以升级到 5.14.0 或更高版本,该版本移除了 `pickle` 模块,并在服务器间消息传递中使用更安全的 JSON 编码。
来源
1Socket.IO 中不安全的 pickle 反序列化漏洞的概念验证(PoC)
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。