AI安全攻防分析:ENCFORGE勒索软件与Docker Socket暴露排查
AI安全攻防分析 | 2026-07-23 | AI Agent 框架漏洞链:从未授权RCE到AI模型勒索的完整攻击路径
摘要
2026 年上半年,
AI Agent 框架成为攻击者重点目标。Langflow 连续三个 CVE 被纳入 CISA KEV 目录
,其中 CVE-2025-3248 被武器化部署 ENCFORGE 勒索软件,
专门加密 AI 模型权重和训练数据集。LangChain 的序列化注入漏洞 CVE-2025-68664 评分高达 9.3 分。SANS ISC 的日志分析显示
,
互联网上已出现针对 MCP 服务器和 AI 助手凭证文件的系统性扫描。本文基于 NVD 官方数据和公开安全报告
,完整拆解 AI Agent 框架的漏洞利用链条。
背景
AI Agent 框架的爆发式增长带来了全新的攻击面。GitHub 上 LangChain(142,333 Star)和 Langflow(152,217 Star)已成为 LLM 应用开发的基础设施,但安全治理严重滞后于功能迭代。
2026 年 7 月 21 日,
The Hacker News 报道了 Sysdig 研究团队的发现:攻击者利用 Langflow 的未授权 RCE 漏洞
,部署名为 ENCFORGE 的编译型 Go 勒索软件,
专门加密 PyTorch 检查点、TensorFlow 记录、Hugging Face SafeTensors、GGUF 模型文件、FAISS 向量索引等 AI 基础设施文件[1]。研究者评估
,
重建一个生产级 AI 模型的成本在 75,000 至 500,000 美元之间。
与此同时,SANS ISC 在 2026 年 7 月 13 日的日志分析中发现,
互联网扫描器已将 MCP 服务器握手、AI 助手配置文件和本地 LLM 端点纳入标准探测目标[2]。攻击者正在系统性地寻找暴露的 AI Agent 基础设施。
技术分析
一、Langflow 未授权 RCE 漏洞链
Langflow 在 2025 至 2026 年间连续暴露三个高危漏洞,全部被纳入 CISA 已知被利用漏洞(KEV)目录:
| CVE 编号 | CVSS 评分 | 漏洞类型 | 影响版本 | 修复版本 | KEV 加入时间 |
|---|---|---|---|---|---|
| CVE-2025-3248 | 9.8 | 未授权代码注入 | < 1.3.0 | 1.3.0 | 2025-05-05 |
| CVE-2026-33017 | 9.8 | 未授权流程构建 RCE | < 1.9.0 | 1.9.0 | 2026-03-25 |
| CVE-2026-55255 | 8.4 | IDOR 越权执行 | < 1.9.1 | 1.9.1 | 2026-07-07 |
CVE-2025-3248 的核心问题在于 /api/v1/validate/code 端点无认证要求,攻击者可通过构造 HTTP 请求执行任意 Python 代码[3]。NVD 官方描述确认该漏洞涉及 CWE-306(缺失认证)和 CWE-94(代码注入)。
CVE-2026-33017 是第二个被利用的 Langflow 漏洞。POST /api/v1/build_public_tmp/{flow_id}/flow 端点允许在无认证情况下构建公开流程
,当攻击者提供 data 参数时,
端点使用攻击者控制的流程数据(包含节点定义中的任意 Python 代码)替代存储的流程定义[4]。
CVE-2026-55255 则是 IDOR 漏洞,认证攻击者可通过指定受害者的 flow ID 执行属于其他用户的流程[5]。
二、ENCFORGE 勒索软件攻击链完整拆解
根据 Sysdig 的披露和 The Hacker News 的报道[1],攻击链分为四个阶段:
第一阶段:初始访问。 攻击者通过 CVE-2025-3248 获取 Langflow 服务器上的代码执行权限。入口端点无需认证
,CVSS 9.8,利用门槛极低。
第二阶段:凭证收集与横向移动。 攻击者(被追踪为 JADEPUFFER)扫描容器内凭证
,
发现 Docker socket 位于 /var/run/docker.sock。首次从 GCP C2 服务器拉取 ENCFORGE 失败后
,
攻击者在 5 分 24 秒内通过 Langflow RCE 通道创建并修改了 6 个 Python 脚本
,最终通过 Docker API 实现容器逃逸。
第三阶段:容器逃逸至宿主机。 最终版本的逃逸脚本创建特权容器,
配置 Privileged: true、PidMode: host、NetworkMode: host
,并将根文件系统以读写模式挂载,
等同于获取宿主机 root 权限。攻击者通过 /proc/{pid}/root 路径将 ENCFORGE 二进制文件复制到宿主机
,再通过 nsenter 在宿主机上执行。
第四阶段:ENCFORGE 加密。 ENCFORGE 是 UPX 5.20 打包的静态 Go 1.22.12 ELF 二进制文件。加密算法为 AES-256-CTR
,
对称密钥使用内嵌 RSA-2048 公钥封装。采用选择性区域加密优化(与 LockBit、BlackCat 同类策略)。目标文件覆盖约 180 种扩展名
,
包括 .pt、.pth、.safetensors、.gguf、.onnx、.faiss、.parquet、.npy 等。勒索信命名为 README、HOW_TO_DECRYPT、README_DECRYPT
,联系邮箱为 e78393397@proton.me。
python
“””ENCFORGE 检测 YARA 规则骨架,基于 Sysdig 披露的 IoC 构建”””
rule ENCFORGE_Ransomware:
meta:
description = “ENCFORGE AI-targeting ransomware”
sha256_packed = “8cb0c223b018cecef1d990ec81c67b826eb3c30d54f06193cf69969e9a8baea2”
sha256_unpacked = “ea7822eac6cecef7746c606b862b4d3034856caf754c4cf69533662637905328”
strings:
$proj = “encfile”
$keygen = “keyforge”
$ext = “.locked”
$note1 = “HOW_TO_DECRYPT”
$email = “e78393397@proton.me”
condition:
3 of ($proj, $keygen, $ext, $note1, $email)
三、LangChain 序列化注入漏洞
LangChain 的 dumps() 和 dumpd() 函数在序列化自由格式字典时
,
不转义包含 lc 键的字典。lc 键是 LangChain 内部用于标记序列化对象的标识。当用户可控数据包含此键结构时
,
反序列化阶段会将其作为合法的 LangChain 对象而非普通用户数据处理[6]。
该漏洞影响 LangChain 0.3.81 之前版本和 1.0.0 至 1.0.6 版本
,CVSS 9.3(CRITICAL),
向量串为 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N。CWE 分类为 CWE-502(不可信数据反序列化)。
修复提交(commit 5ec0fa69)的提交信息确认了修复内容:在 dump 时转义 lc-ser 格式的字典
,
在 load 时增加 allowed_objects 参数[7]。攻击者可通过构造包含 lc 键的字典数据
,在反序列化时触发 LangChain 对象实例化,
若目标对象包含危险方法(如 PythonREPL),则可能导致任意代码执行。
python
“””CVE-2025-68664 漏洞原理示意,基于 NVD 官方描述构建”””
from langchain_core.load import dumps, loads
malicious_data = {
“lc”: 1,
“type”: “constructor”,
“id”: [“langchain_community”, “utilities”, “PythonREPL”],
“kwargs”: {}
}
serialized = dumps({“user_input”: malicious_data})
deserialized = loads(serialized)
“””反序列化时 malicious_data 被当作合法 LangChain 对象实例化,PythonREPL 实例化后可执行任意代码”””
四、Neuron AI Agent 的 Prompt 注入到 SQL 破坏
Neuron 是 PHP 生态的 AI Agent 编排框架(GitHub 2,022 Star)。两个关联漏洞构成了从 Prompt 注入到数据库破坏的完整攻击链[8][9]:
CVE-2025-67509(CVSS 8.2):MySQLSelectTool 本意为只读工具
,但验证逻辑仅检查首个关键字(如 SELECT)和禁止关键字列表,
未阻止 INTO OUTFILE / INTO DUMPFILE 等文件写入构造。攻击者通过 Prompt 注入影响工具输入
,可在数据库服务器上写入任意文件。
CVE-2025-67510(CVSS 9.4):MySQLWriteTool 使用 PDO::prepare() + execute() 执行调用方提供的任意 SQL
,无语义限制。在 LLM/Agent 上下文中,
Prompt 注入可触发 DROP TABLE、TRUNCATE、DELETE 等破坏性查询。
php
/** CVE-2025-67509 漏洞根因:仅检查首个关键字,Neuron AI 2.8.11 之前版本 */
class MySQLSelectTool extends Tool {
public function validateQuery(string $sql): bool {
$firstKeyword = strtoupper(strtok(trim($sql), ” \t\n”));
if ($firstKeyword !== ‘SELECT’) { return false; }
$forbidden = [‘INSERT’, ‘UPDATE’, ‘DELETE’, ‘DROP’, ‘ALTER’, ‘CREATE’];
foreach ($forbidden as $kw) {
if (stripos($sql, $kw) !== false) { return false; }
}
return true;
/** 漏洞:SELECT … INTO OUTFILE 可绕过检查 */
}
}
五、MCP 服务器互联网级扫描态势
SANS ISC 在 2026 年 7 月 13 日的分析中,从一台普通 Web 服务器的 14 天访问日志中发现了系统性的 AI Agent 基础设施扫描行为[2]:
| 扫描类型 | 请求示例 | 攻击意图 |
|---|---|---|
| MCP 握手 | POST /mcp(JSON-RPC initialize) | 枚举 MCP 服务器暴露的工具和数据源 |
| SSE 探测 | GET /sse | 发现旧版 MCP 服务器的 SSE 传输端点 |
| AI 配置文件 | GET /.claude/mcp.json | 获取 MCP 客户端配置和 API 密钥 |
| AI 凭证 | HEAD /.claude/.credentials.json | 窃取 AI 编程助手存储的凭证 |
| LLM 端点 | GET /v1/models、GET /api/tags | 发现未认证的 LLM 推理服务 |
| 云元数据 SSRF | GET /fetch?url=metadata.google.internal | 通过代理端点窃取云服务账号令牌 |
值得警惕的是,MCP 握手请求来自 49 个不同的源 IP,
远超其他扫描类别的分布范围。扫描器发送的是格式正确的 JSON-RPC 2.0 请求体
,包含真实的 MCP 协议版本号 2025-03-26,
表明扫描者深入理解 MCP 协议。扫描器对凭证文件使用 HEAD 方法(仅检查存在性不下载正文)
,这是一种针对大规模扫描的效率优化,表明攻击者构建了成熟的扫描工具链。
实测验证
Langflow CVE-2025-3248 验证方法
根据 Horizon3.ai 的披露报告[10],该漏洞可通过单条 HTTP 请求验证。检测时仅需检查端点是否存在且无需认证:
bash
TARGET=”http://target-host:7860″
curl -s -o /dev/null -w “%{http_code}” “${TARGET}/api/v1/validate/code” -X POST -H “Content-Type: application/json” -d ‘{“code”: “1”}’
echo “”
echo “200 = 端点可访问且无需认证,存在风险”
echo “401/403 = 已添加认证,已修复”
echo “404 = 端点不存在或已移除”
ENCFORGE 检测与 Docker Socket 暴露排查
bash
find / -name “*.locked” -type f 2>/dev/null | head -20
find / -name “HOW_TO_DECRYPT” -o -name “README_DECRYPT” 2>/dev/null
ls -la /var/run/docker.sock 2>/dev/null && echo “Docker socket exposed in container”
docker ps -a –filter “privileged=true” –format “{{.ID}} {{.Image}} {{.Status}}”
grep -E “POST /mcp|\.claude/mcp\.json|\.credentials\.json|/v1/models|/api/tags” /var/log/nginx/access.log | awk ‘{print $1}’ | sort | uniq -c | sort -rn | head -20
影响范围
| 框架/平台 | CVE 编号 | CVSS | 影响版本 | 已知利用 |
|---|---|---|---|---|
| Langflow | CVE-2025-3248 | 9.8 | < 1.3.0 | 是,ENCFORGE 入口 |
| Langflow | CVE-2026-33017 | 9.8 | < 1.9.0 | 是,CISA KEV |
| Langflow | CVE-2026-55255 | 8.4 | < 1.9.1 | 是,CISA KEV |
| LangChain | CVE-2025-68664 | 9.3 | < 0.3.81 | 潜在 |
| LangChain | CVE-2025-65106 | 8.3 | < 0.3.80 | 潜在 |
| Neuron AI | CVE-2025-67510 | 9.4 | <= 2.8.11 | 潜在 |
| Neuron AI | CVE-2025-67509 | 8.2 | <= 2.8.11 | 潜在 |
| OpenCode | CVE-2026-22813 | 9.4 | < 1.1.10 | 潜在 |
| Agenta | CVE-2026-27952 | 8.8 | < 0.48.1 | 潜在 |
| Agenta | CVE-2026-27961 | 8.8 | < 0.86.8 | 潜在 |
防护建议
临时应急措施
1. 立即升级:Langflow 升级至 1.9.1 或更高版本,
LangChain 升级至 0.3.81 或 1.2.5 以上,
Neuron AI 升级至 2.8.12,
Agenta 升级至 0.86.8 以上。
2. 凭证轮换:如果 Langflow 实例曾暴露在互联网上,轮换所有 AI 提供商密钥、云凭证、数据库密码和 Docker 访问令牌。修补漏洞不会撤销已泄露的凭证。
3. 移除 Docker Socket:从不需要创建容器的部署中移除 /var/run/docker.sock。Langflow 的标准部署不需要 Docker socket 访问权限。
4. 网络隔离:将 AI Agent 框架的 API 端点限制在内网访问,禁止直接暴露到互联网。对 MCP 服务器端点强制认证。
5. 日志检测:在访问日志中搜索 POST /mcp、GET /.claude/mcp.json、GET /v1/models、GET /api/tags 等路径,识别扫描行为。
长期加固方案
1. AI 模型资产备份:将模型权重、向量索引和训练数据集存储在离线或不可变快照中。ENCFORGE 攻击表明,模型资产现在与源代码和生产数据库处于同一恢复等级。
2. Agent 工具权限最小化:对 AI Agent 的数据库工具实施严格的 SQL 白名单机制
,
禁止 INTO OUTFILE、INTO DUMPFILE 等危险构造。数据库用户应使用最小权限账户
,不授予 FILE 权限。
3. 供应链安全审计:根据 Palo Alto Unit 42 的研究[11]
,对 AI Agent 安装的第三方技能实施行为完整性验证(BIV),
在安装前而非安装后检查技能的实际行为是否与声明一致。
4. 序列化安全:对 LangChain 的 loads() / load() 函数使用 allowed_objects 参数限制可反序列化的对象类型,拒绝未预期的类构造。
5. MCP 服务器安全基线:MCP 服务器必须强制认证,禁止互联网直接暴露。在 WAF/反向代理层拦截未认证的 JSON-RPC initialize 请求。
参考链接
1. Sysdig / The Hacker News: New ENCFORGE Ransomware Targets AI Model Files in Langflow RCE Attack – https://thehackernews.com/2026/07/new-encforge-ransomware-targets-ai.html
2. SANS ISC: Someone Is Scanning for Your MCP Servers and AI Assistant Credentials – https://isc.sans.edu/diary/rss/33150
3. NVD: CVE-2025-3248 (Langflow Unauthenticated RCE) – https://nvd.nist.gov/vuln/detail/CVE-2025-3248
4. NVD: CVE-2026-33017 (Langflow Unauthenticated Flow Build RCE) – https://nvd.nist.gov/vuln/detail/CVE-2026-33017
5. NVD: CVE-2026-55255 (Langflow IDOR) – https://nvd.nist.gov/vuln/detail/CVE-2026-55255
6. NVD: CVE-2025-68664 (LangChain Serialization Injection) – https://nvd.nist.gov/vuln/detail/CVE-2025-68664
7. LangChain Fix Commit: serialization patch (#34455) – https://github.com/langchain-ai/langchain/commit/5ec0fa69de31bbe3d76e4cf9cd65a6accb8466c8
8. NVD: CVE-2025-67509 (Neuron AI MySQLSelectTool Read-Only Bypass) – https://nvd.nist.gov/vuln/detail/CVE-2025-67509
9. NVD: CVE-2025-67510 (Neuron AI MySQLWriteTool Arbitrary SQL) – https://nvd.nist.gov/vuln/detail/CVE-2025-67510
10. Horizon3.ai: Unsafe at Any Speed – Abusing Python exec for Unauth RCE in Langflow AI – https://www.horizon3.ai/attack-research/disclosures/unsafe-at-any-speed-abusing-python-exec-for-unauth-rce-in-langflow-ai/
11. Palo Alto Unit 42: Trust No Skill – Integrity Verification for AI Agent Supply Chains – https://unit42.paloaltonetworks.com/ai-agent-supply-chain-risks/
—
本文仅用于授权安全测试与学术研究,遵守《网络安全法》相关规定
生成时间:2026-07-23 | 生成工具:Hermes Agent
—
📌 关注「AI新视线」,获取红队工具链和攻防实战手册。
🎯 互动话题
⭐ 文中性能对比+部署指南已整理成信息图,长按保存随时查阅。

扫码关注「AI新视线」
穿透噪音,看见本质
夜雨聆风