🔴 【深度分析】严重安全漏洞:CVE-2026-61736

CVSS 评分: 严重(9.3)🔴  状态: Deferred  发布时间: 2026-07-15


🔍 技术细节速览

字段 值
CVE ID CVE-2026-61736
CVSS 评分 9.3 🔴
严重程度 严重
CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
CWE 分类 CWE-942
发布时间 2026-07-15
最后更新 2026-07-15
状态 Deferred
数据来源 security-advisories@github.com

好的,作为一名资深网络安全分析师,我将基于您提供的 NVD 数据,为您生成一篇关于 CVE-2026-61736 的深度分析文章。


深度安全分析:CVE-2026-61736 - LightRAG 跨域认证凭据泄露漏洞

⚠️ 漏洞风险评级

  • CVE ID: CVE-2026-61736
  • CVSS 3.1 评分: 9.3 (严重 / Critical)
  • CVSS 向量: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N

危害等级: 攻击者无需任何权限,可通过诱使已登录的合法用户访问恶意网站,即可完全窃取该用户的文档和知识图谱数据,并执行任意破坏性操作(如删除数据)。该漏洞对数据机密性和完整性构成严重威胁。


漏洞概述

LightRAG 是一款用于简化检索增强生成(RAG)流程的组件。在其 1.5.4 版本之前,其 API 服务器 (lightrag/api/lightrag_server.py) 存在一个严重的跨域安全配置错误。

该漏洞的核心问题在于服务器默认启用了 CORS_ORIGINS=*(允许所有来源),并且同时启用了 allow_credentials=True。根据 HTTP 规范,这种做法是不安全的,因为它允许任何外部网站在用户不知情的情况下,利用用户的浏览器向 LightRAG 服务器发送带有身份凭证(如 cookies、HTTP 认证信息)的跨域请求。这直接违反了同源策略的安全初衷,构成典型的跨站请求伪造(CSRF)攻击变种,结合数据窃取能力,其危害性被进一步放大。

受影响组件与版本

  • 受影响组件: LightRAG API 服务器 (lightrag/api/lightrag_server.py)
  • 受影响版本: 所有 1.5.4 之前 的版本
  • 不受影响版本: 1.5.4 及之后 的版本

漏洞原理分析

现有信息足以判定该漏洞的成因。漏洞点位于 LightRAG 的 API 服务器配置文件中,具体表现为以下代码逻辑:

# lightrag/api/lightrag_server.py (在 1.5.4 之前)
app.add_middleware(
    CORSMiddleware,
    allow_origins=['*'],  # 允许所有来源
    allow_credentials=True,  # 允许携带凭证
    allow_methods=["*"],
    allow_headers=["*"],
)
技术细节分解:
  1. 跨域资源共享 (CORS) 配置不当:

    • allow_origins=['*']: 指示浏览器信任任何外部域名发起的请求。浏览器看到此响应头后,不会拦截来自任意域名的 JavaScript 发起的请求。
    • allow_credentials=True: 指示浏览器允许发送身份凭证,例如登录时设置的 session cookie、JWT token 或 HTTP Basic 认证信息。
  2. 安全隐患的产生:

    • 根据 HTTP 规范,当 allow_credentials=True 时,allow_origins 绝不能设置为 '*'。这是为了防止攻击者在用户不知情的情况下,利用用户已登录的会话进行操作。
    • LightRAG 服务器错误地将两者同时启用,导致任何外部网站都能向该服务器发起 fetch() 或 XMLHttpRequest 请求,并且这些请求会自动附带用户在 LightRAG 系统中的有效身份凭证。
  3. 攻击向量:

    • 水坑攻击 / 钓鱼诱导: 攻击者构造一个恶意网站 evil.com,并在其上嵌入 JavaScript 代码。
    • 隐蔽请求: 当已登录 LightRAG 的用户通过浏览器访问 evil.com 时,恶意脚本会发起跨域请求到用户内网或公网可及的 lightrag.example.com 服务器。
    • 数据窃取与操作: 由于浏览器自动携带了有效的用户凭据,服务器认为这是一个合法请求,并响应数据或执行操作。攻击者可以通过读取响应内容,窃取用户的文档列表、知识图谱数据,或发起 DELETE 请求删除存储。这一切都对用户完全透明。

影响评估

  • 攻击复杂度 (AV:N / AC:L / PR:N): 低。攻击者无需访问内网,无需任何特权账户,仅需诱使受害者访问其控制的网站即可。
  • 攻击前置条件 (UI:R): 需要用户交互。攻击者无法直接利用,必须欺骗用户。但诱使用户点击一个看似无害的链接或访问一个被插入广告的网站是常见的攻击手段。
  • 利用后果 (C:H / I:H): 严重。
    • 机密性影响: 高。攻击者可以读取所有与该用户权限相关的文档和知识图谱数据,导致数据泄露。
    • 完整性影响: 高。攻击者可以发起写操作,如修改文档内容、删除知识图谱节点甚至重置整个文档存储库。
    • 可用性影响: 无。该漏洞本身不直接导致拒绝服务,但攻击者可以通过删除数据间接破坏服务。

综合评估: 这是一个非常危险的配置错误漏洞。它使得任何已登录的 LightRAG 用户在面对外部攻击时都毫无防御能力。由于 CVSS 评分达到 9.3,属于严重级别,建议所有受影响用户立即采取措施。

修复建议

1. 永久性修复(推荐)
  • 升级补丁: 立即将 LightRAG 升级到 1.5.4 或更高版本。在此版本中,开发团队已修复了该配置,移除了 allow_origins=['*'] 与 allow_credentials=True 的组合。
  • 官方安全公告: 请参考 GitHub 上的安全公告和发布说明。
2. 临时缓解措施

如果无法立即升级,可以采取以下措施:

  • 手动修改配置文件:
    找到 lightrag/api/lightrag_server.py 文件,将:

    allow_origins=['*'],
    allow_credentials=True,
    

    修改为:

    # 方案A:明确指定允许的域名列表(最佳实践)
    allow_origins=['https://your-frontend-domain.com', 'http://localhost:3000'],
    allow_credentials=True,
    
    # 方案B:如果前端和后端完全同源(不跨域),则完全无需配置CORS
    # allow_origins=[],
    # allow_credentials=False,
    
  • 部署反向代理:
    在 LightRAG 服务器前部署 Nginx 或 Apache,并在反向代理层禁止以下 CORS 头的组合:

    add_header 'Access-Control-Allow-Origin' '*' always;
    add_header 'Access-Control-Allow-Credentials' 'true' always;
    

    确保反向代理不要发送 Access-Control-Allow-Origin: * 与 Access-Control-Allow-Credentials: true 的响应头到客户端。

  • 限制网络访问:
    如果使用场景属于内部工具,可以使用防火墙或 Kubernetes NetworkPolicy 将 LightRAG 服务器限制在内网或特定网络段,使其无法被公网访问,从而消除外部网络攻击向量。

参考资料