🎯 CVE-2025-34291 深度技术分析:漏洞根因 · PoC/EXP · 检测指纹

🎯 CVE 全聚合深度分析

CVE-2025-34291 深度技术分析

📊 聚合 3 来源🧪 含 PoC
NVD-LatestCISA-KEVPoC-in-GitHub

摘要:CVE-2025-34291 是低代码 AI 平台 Langflow 中一个由错误 CORS 配置与宽松 Cookie 属性组合导致的链式漏洞,CVSS 评分为 8.8(高危)。该漏洞允许恶意网页在用户浏览其他站点时,以受害者的身份发起跨域请求,窃取合法的 access_token / refresh_token 配对,进而绕过认证访问所有受保护接口,并最终利用内置的代码执行功能实现远程代码执行(RCE)。本文将从技术根因、利用链、影响危害及修复缓解等维度进行深度分析。

📌 漏洞概述

CVE-2025-34291 影响 Langflow 1.6.9 及之前的所有版本。Langflow 是一个用于构建多代理 AI 应用的拖放式可视化平台,通常以 Web 服务形式部署,并提供基于 REST API 的前后端交互接口。该漏洞的 CVSS 评分为 8.8,属于高危漏洞。

从漏洞类型上看,其核心是 Origin 验证错误(CWE-942:Overly Permissive Cross-domain Whitelist),但实际利用依赖于多个不安全配置的组合:

  • 过于宽松的 CORS 策略:服务端设置了 Access-Control-Allow-Origin: *,同时又启用了 Access-Control-Allow-Credentials: true。按照标准规范,这两者本就不可共存,但部分实现或反代配置却允许该组合生效。
  • Refresh Token Cookie 的 SameSite 属性为 None:使得跨站请求能够携带该 Cookie,从而在第三方网页发起的请求中完成认证。

由于上述特性叠加,攻击者可以构造一个恶意网页,在受害者浏览器中向 Langflow 的 /refresh 接口发起跨域请求。该接口会同时返回新的 access_token 和 refresh_token,从而完成会话接管。随后,攻击者可使用获取到的 token 调用所有已认证接口,其中包含可用于执行任意代码的组件,最终实现完整的系统入侵。

🔬 漏洞根因分析

要理解此漏洞的根因,需从 Langflow 的认证流程与浏览器安全机制入手。Langflow 采用 JWT 双令牌方案:短时效的 access_token 用于访问受保护接口,长时效的 refresh_token 用于刷新 access token。在登录成功后,refresh_token 以 HttpOnly Cookie 形式被设置到浏览器中,并携带 SameSite=None 属性,以允许跨子域或前后端分离部署时的 Cookie 传递。这正是第一层安全隐患。

第二层隐患在于 CORS 策略。服务端在配置跨域许可时,采用了 allow_origins='*'allow_credentials=True 的组合。实际上,当响应头包含 Access-Control-Allow-Origin: * 时,浏览器不会允许脚本获取响应内容,除非该请求未携带凭据。然而,如果服务器在运行时动态反射了请求的 Origin 头(或使用了支持该行为的 CORS 中间件),则实际返回的 Access-Control-Allow-Origin 可能是攻击者的域名,而非通配符。这时,浏览器会认为跨域请求被授权,从而允许攻击者脚本读取响应。

在 Langflow 1.6.9 中,CORS 过滤器在匹配 Origin 时存在逻辑缺陷——对任意来源(包括 nullhttps://evil.com)均返回镜像的 Origin,并同时附带 Access-Control-Allow-Credentials: true。此行为等同于完全放行任意跨域请求,且允许附带 Cookie。

利用链的最终闭环在于 refresh 端点。攻击者的恶意网页仅需构造如下请求:

  • 发送 POST 请求到 https://target/api/v1/refresh(或等效路径);
  • 设置 credentials: 'include',使请求自动携带受害者的 refresh_token Cookie;
  • 因 CORS 错误配置,能够正常读取响应中的新 token 信息。

一次成功的 refresh 操作,攻击者便获得了受害者当前会话的合法凭证。由于 refresh_token 和 access_token 对始终有效(在过期前),攻击者可将其提取到自己的服务器上,完全脱离受害者浏览器的限制,任意调用已认证接口。该利用流程不需要任何交互,只要受害者在已登录状态下访问攻击者控制的页面,即可被触发。

本项目中的 CVE-2025-34291_cors_security_scanner 正是基于这一原理,通过发送带有自定义 Origin 的跨域请求,检测目标是否存在通配符 CORS、Origin 反射、凭据跨域放行及 SameSite 配置缺陷。工具构造一次模拟的预检请求或实际 GET 请求,观察响应头中的 Access-Control-Allow-OriginAccess-Control-Allow-Credentials 值,即可判定漏洞是否存在。

💥 影响与危害

该漏洞的实际影响远不止跨域信息窃取,其完整危害链路可归纳为:

  • 账户接管(Account Takeover):攻击者可以静默获得受害者的 access_token 和 refresh_token,完全接管其 Langflow 会话,无需密码。受害者的所有项目、配置、API 密钥和模型凭据均暴露于攻击者面前。
  • 远程代码执行(Remote Code Execution):Langflow 作为低代码编排平台,内置了代码执行节点(如 Python/RunJS 组件)。攻击者利用已获取的认证 token 调用相关 API,即可在服务器上执行任意操作系统命令。这一步骤无需任何额外漏洞,因为这是平台面向授权用户的正常功能。
  • 系统级完全失陷(Full System Compromise):一旦代码执行成功,攻击者可写入持久化后门、窃取环境变量中的密钥、横向移动至同一网络中的其他系统,甚至控制云平台管理接口。对于被部署在 Kubernetes 或容器环境中的 Langflow,攻击者还可能导致集群级破坏。
  • 供应链风险:Langflow 常用于企业内部 AI 应用构建,攻击者可通过控制一个项目间接篡改 AI 模型的输入/输出,对其他业务系统造成连锁性数据投毒或逻辑绕过。

虽然目前 Exploit-DB 未公开完整 EXP,但 GitHub 上已出现基于 CORS 扫描思路的辅助工具,说明该漏洞的利用条件很容易被自动化检测。CISA 已将此漏洞列入 KEV(Known Exploited Vulnerabilities)目录,表明野外已存在利用迹象或高度可被利用。所有 Langflow 用户应视为紧急风险处理。

🛡️ 修复与缓解

Langflow 官方已在 1.6.9 之后的版本中修复此漏洞,用户应立即升级到最新稳定版本(1.6.10 或更高)。如果无法立即升级,应严格采取以下缓解措施:

  • 收紧 CORS 配置:移除 allow_origins='*',改为明确的域名白名单列表,并确保列表中的每个来源均与请求 Origin 精确匹配。同时禁止在启用 allow_credentials=True 时使用通配符。
  • 修复 SameSite 属性:将 refresh_token Cookie 的 SameSite 设置为 LaxStrict。对于前后端跨站部署场景,可改为使用 Token 请求头(如 Authorization)而非 Cookie 存储刷新凭证,以避免被跨站请求自动携带。
  • 启用 CSRF 防护:在认证接口(尤其是 token 刷新接口)上强制校验自定义请求头(如 X-Requested-With)或 CSRF Token,确保跨域请求即使携带 Cookie 也无法成功调用。
  • 严格控制代码执行接口:对内置 code-execution 功能进行额外的管理员权限校验,例如要求二次授权、IP 白名单或分环境隔离,降低 token 泄露后的横向影响。
  • 监控异常请求:在 Langflow 服务前添加 Web Application Firewall(WAF)或反向代理,对 Origin 头进行校验,并记录所有包含敏感响应(如 token 信息)的跨域请求日志。
  • 检查已暴露实例:使用上述安全扫描工具审计自身部署中的 CORS 与 Cookie 配置;同时检查现有会话日志,确认是否已存在未授权访问迹象。

由于 CISA KEV 已收录,对于无法立即升级且无法有效缓解的系统,建议按照 BOD 22-01 指引停止使用该产品,直至修复完成。

🧪 PoC 复现

从 GitHub 公开仓库抓取的实际 PoC 代码(仓库)。

📋 代码元数据语言md来源amnnrth/CVE-2025-34291_cors_security_scanner针对性✅ 已验证与漏洞相关(代码含 CVE 引用)依赖见代码注释/README用法详见代码注释中的使用说明

# CVE-2025-34291_cors_security_scanner
A lightweight Python-based security assessment tool for detecting dangerous Cross-Origin Resource Sharing (CORS) misconfigurations - CVE-2025-34291.

````md id="zrxk1u"
# CORS Security Scanner

A lightweight Python-based security assessment tool for detecting dangerous Cross-Origin Resource Sharing (CORS) misconfigurations.

This tool helps identify:
- Wildcard CORS policies (`*`)
- Arbitrary origin reflection
- Credentialed CORS misconfigurations
- Dangerous preflight (`OPTIONS`) behavior
- SameSite cookie issues

Designed for:
- Authorized penetration testing
- Internal security assessments
- Bug bounty programs
- Defensive security research

---

# Features

- Single target scanning
- Bulk target scanning via TXT file
- Multi-threaded scanning
- XLSX report export
- JSON report export
- Preflight request analysis
- Multiple endpoint/path testing
- Severity classification
- Colored console output

---

# Installation

Clone repository:

```bash
git clone https://github.com/amnnrth/CVE-2025-34291_cors_security_scanner.git
cd CVE-2025-34291_cors_security_scanner
````

Install dependencies:

```bash
pip install -r requirements.txt
```

---

# Usage

Run scanner:

```bash
python3 cors_scanner.py
```

---

# Bulk Scan Example

Create `targets.txt`

```txt
https://example.com
https://api.example.com
target.com
```

Select:

```txt
2. Bulk Scan (TXT File)
```

Reports will automatically be saved into:

```txt
reports/
```

---

# Severity Levels

|
Severity |Description                          ||-------- |------------------------------------ ||INFO     |No dangerous behavior detected       ||MEDIUM   |Wildcard origin allowed              ||HIGH     |Origin reflection detected           ||CRITICAL |Reflection/wildcard with credentials ||ERROR    |Connection or SSL issue              |
---

# Example Vulnerable Headers

```http
Access-Control-Allow-Origin: *
```

```http
Access-Control-Allow-Origin: https://evil.com
Access-Control-Allow-Credentials: true
```

---

# Legal Disclaimer

This tool is intended ONLY for authorized security testing and defensive security research.

Unauthorized scanning against systems without permission may violate laws and regulations.

Users are responsible for complying with applicable laws and policies.

---

# Author

Security research &
defensive tooling project for improving web application security awareness.

````

Simple repository description:

```txt id="wcruhf"
Python-based CORS misconfiguration scanner for authorized security testing with XLSX/JSON reporting support.
`

⚔️ EXP 利用代码

截至分析时,Exploit-DB 未收录该 CVE 的公开利用代码。可利用上述 PoC 进行验证,或关注 Exploit-DB 更新。

🕵️ 检测指纹

当前规则库未收录针对该 CVE 的专用检测规则。建议:

  • 根据漏洞根因编写 Nuclei 检测模板
  • 在 WAF/IDS 中配置针对漏洞特征的规则
  • 关注漏洞指纹库更新

🤖 本文由漏洞情报系统自动聚合生成 · 2026-08-12 19:06 · 数据源: NVD/GitHub-Advisory/OSV/CISA-KEV/Exploit-DB/PoC-in-GitHub + 检测规则库

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)