Langflow 批量删除路径遍历:可清除服务器任意目录
Langflow 知识库删除 API 中的路径遍历漏洞,使已认证用户能删除进程可写的任意目录。已在 1.9.0 修复;1.8.4 及更早版本受影响。
这是什么?
Langflow 是一个被广泛部署的开源平台,用于构建 LLM 与智能体工作流,其暴露于互联网的实例数量庞大。维护者发布了安全公告(GHSA-9whx-c884-c68q),描述了知识库 API 中的一处路径遍历漏洞,使已认证用户能够删除服务器上的任意目录。该漏洞影响 Langflow 1.8.4 及更早版本,并已在 1.9.0 中修复。它在 2026 年 7 月的漏洞情报中再次受到关注,与一批更广泛的 Langflow 与 Ollama 公告同时出现——这也提醒我们,暴露在外的实例往往远远落后于已修复版本。
本文是对一个已披露且已修复问题的防御性分析,不提供任何可用的利用代码;重点在于理解这一漏洞类别,并知道如何在自己的代码中避免它。
工作原理
漏洞位于知识库的批量删除处理器中——即 DELETE /api/v1/knowledge_bases 端点,由 src/backend/base/langflow/api/v1/knowledge_bases.py 中的 delete_knowledge_bases_bulk 函数实现。
根本原因是典型的路径遍历模式(CWE-22)。该处理器接收用户提供的知识库名称列表,直接将其拼接进文件系统路径,再将结果传给递归删除(shutil.rmtree())——却未检查解析后的路径是否仍在预期的用户目录之内。其他知识库端点会经过安全的辅助函数(_resolve_kb_path()),而批量删除路径完全绕过了它。
# 存在漏洞的形态(简化、示意)
for name in kb_names: # 由攻击者控制
target = base_dir / name # 无边界校验
shutil.rmtree(target) # 越界的递归删除
# 含有 "../" 遍历序列的名称会解析到
# base_dir 之外:删除操作逃出用户目录。
由于名称字段可携带 ../ 遍历序列,计算出的路径会脱离沙箱,递归删除便落在序列所指之处——包括另一租户的数据,或主机上其他位置的路径。没有内存破坏,没有代码执行:只是字符串拼接驱动了一次破坏性的文件操作。
为何重要
评分所体现的影响是完整性与可用性,而非机密性——它销毁数据,而非读取数据。公告将其评为严重(CVSS 9.6),网络攻击向量、攻击复杂度低、仅需较低权限(任意已认证用户)。
三点后果尤为突出。其一,跨租户影响半径:在共享的多用户实例上,一个已认证账户可清除另一租户的知识库目录。其二,服务中断与数据丢失:删除可能移除应用文件、模型缓存、配置,或进程可写的同址备份,可能使实例无法恢复。其三,大规模暴露:Langflow 实例常可从互联网访问,且许多运行在薄弱或默认认证之后,因此”已认证”这道门槛比听上去要低。
该模式并不限于 Langflow。任何允许客户端为资源命名、随后把该名称映射到文件系统的 API——无论用于上传、导出、缓存还是删除——只要信任该名称,就承担同样的风险。
防御措施
修复与通用教训是同一件事:永远不要把客户端提供的名称当作路径组成部分来信任,并始终确认解析后的路径仍位于其允许的根目录之内。
- 升级到 Langflow 1.9.0 或更高版本。 这是直接的修复。补丁(PR #12243)使用
Path.resolve()归一化所提供的路径,并在删除前校验其位于已认证用户目录之下;后续更新以Path.is_relative_to()强化了校验,以避免前缀歧义缺陷。 - 在你自己的文件 API 中强制路径边界校验。 解析候选路径,并在任何读、写、删操作前断言
resolved.is_relative_to(base_dir)。对含有分隔符或遍历序列的名称直接拒绝,而不是试图清洗它们。 - 以最小权限运行进程。 破坏性遍历只能触及服务账户可写的内容。隔离数据目录,撤销应用与备份路径的写权限,并将备份保存在不同的文件系统上。
- 不要把管理/API 面暴露给不可信网络。 将 Langflow 置于强认证与网络分段之后;把任何面向互联网的实例视为优先修补对象。
- 对递归删除与遍历特征进行告警。 记录知识库删除调用,并将名称参数中的
..序列或分隔符作为检测信号加以监控。
状态
| 项目 | 详情 |
|---|---|
| 受影响 | Langflow ≤ 1.8.4 |
| 修复版本 | Langflow 1.9.0 |
| 弱点 | CWE-22(路径遍历),影响完整性/可用性 |
| 严重性 | 严重,CVSS 9.6(AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H) |
| 参考 | CVE-2026-42048 · GHSA-9whx-c884-c68q |
| 披露 | 公告发布于 2026 年 4 月 27 日;2026 年 7 月再次受到关注 |
上游修复无需任何专有工具——升级到 1.9.0,在你负责的任何文件处理端点中应用路径边界校验,并收紧服务账户,使遍历无处可破坏有价值的数据。