CVE-2025-62505CVE-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),但在开发模式下可使用特定绕过标头进行未授权访问。