EQSTLab/CVE-2026-5027

GitHub: EQSTLab/CVE-2026-5027

针对 Langflow 1.8.4 及以下版本路径遍历漏洞的 PoC 工具,通过文件上传端点实现任意文件写入并进一步利用 cron job 获取远程代码执行能力。

Stars: 1 | Forks: 0

本文是由 [EQSTLab](https://github.com/EQSTLab) 发布的研究文章。 **感谢 [Yahia Hamza](https://yh.do) 报告并分析了此漏洞。** # CVE-2026-5027 ★ CVE-2026-5027 Langflow 路径遍历 / 任意文件写入 PoC ★ ![CVE-2026-5027 PoC 测试](https://github.com/user-attachments/assets/63598259-34e4-491f-81af-8d36db346875)
## 描述 CVE-2026-5027:Langflow 任意文件写入漏洞 描述:Langflow <= 1.8.4 版本中存在路径遍历漏洞,攻击者可以通过向 `/api/v2/files` 端点发送特制的 multipart `filename`,将任意文件写入预期上传目录之外的位置。在启用了自动登录或认证执行较弱的部署环境中,此问题可能被利用于将攻击者控制的内容写入敏感的文件系统位置,从而实现远程代码执行。
## 实验环境搭建 使用 Docker 构建并运行易受攻击的环境: ### 构建镜像 ``` docker build -t cve-2026-5027 . ``` ### 运行容器 ``` docker run --rm -it -p 9013:7860 --name cve-2026-5027 cve-2026-5027 ```
## 使用方法 ### 执行 ``` # 概念验证(写入测试文件到 /tmp/) python3 CVE-2026-5027.py -t # 通过 cron job 反向 shell python3 CVE-2026-5027.py -t --lhost --lport 4444 ```
## 分析 **易受攻击的端点** ``` POST /api/v2/files ``` 该问题的根源在于上传功能信任客户端提供的 multipart `filename` 值。易受攻击的代码路径没有生成安全的服务器端存储名称,也没有将解析后的路径限制在专用的上传目录中,而是允许 `../` 等遍历序列影响最终的目标路径。 因此,攻击者可以逃离预期的存储根目录,并强制应用程序将文件写入服务器文件系统上的任意位置。 典型的利用流程如下: 1. 通过正常登录或启用自动登录的部署环境获取访问令牌。 2. 向 `/api/v2/files` 提交 multipart 上传请求。 3. 提供包含路径遍历序列的特制 `filename`。 4. 导致 Langflow 将攻击者控制的内容写入预期的存储目录之外。 这本质上是一个 **CWE-22:对路径名限制不当** 的问题。 ### 技术根本原因 该安全缺陷是由于在上传处理过程中对用户控制的文件路径进行的不充分清理和验证造成的。应用程序接受原始的客户端文件名,并将其传入存储工作流,而没有充分执行路径规范化和包含检查。 从防御角度来看,这种危险模式在概念上类似于以下内容: ``` save_path = base_dir / file.filename ``` 如果 `file.filename` 包含如下路径遍历组件: ``` ../../../../tmp/poc.txt ``` 最终解析的路径可能会指向 `base_dir` 之外,从而实现任意文件写入。 ### 这为何重要 任意文件写入漏洞通常比标准的无限制上传问题更严重,因为攻击者不仅控制文件内容,还控制目标路径。根据 Langflow 进程的运行时权限,这可能会使攻击者能够: - 覆盖应用程序文件 - 修改启动或计划任务文件 - 通过 Shell 初始化或密钥文件建立持久性 - 从任意文件写入升级为远程代码执行
## 场景 攻击者 --(获取访问令牌或滥用自动登录)--> Langflow `/api/v2/files` --(提供包含 `../` 的特制 multipart 文件名)--> 上传目录外的任意文件写入 --(写入敏感位置)--> 潜在的远程代码执行
## 免责声明 本仓库并非旨在促进对 Langflow 实例的未授权利用。本项目的目的是帮助安全研究人员、防御者和开发人员了解该漏洞,在受控环境中验证暴露情况,并应用有效的缓解措施。
## 参考资料 https://www.tenable.com/security/research/tra-2026-26 https://www.cve.org/CVERecord?id=CVE-2026-5027 https://github.com/yahiahamza/CVE-2026-5027 https://github.com/langflow-ai/langflow
标签:CISA项目, Cron Job 注入, CVE-2026-5027, Docker 靶场, EQSTLab, Langflow, RCE, 任意文件写入, 协议分析, 情报收集, 文件上传漏洞, 权限提升, 漏洞 PoC, 漏洞研究, 编程工具, 网络信息收集, 网络安全, 网络安全审计, 请求拦截, 路径遍历, 远程代码执行, 逆向工具, 隐私保护