CVE-2025-64752 Overview
CVE-2025-64752 is a Server-Side Request Forgery (SSRF) vulnerability in grist-core, an open-source spreadsheet hosting server developed by Grist Labs. Versions prior to 1.7.7 allow any user with access to a document on a Grist installation to abuse a URL-fetching feature that executes requests from the server. Attackers can leverage the server's privileged network position to reach internal services or resources otherwise unreachable from the public internet. The issue is tracked as [CWE-918] and fixed in version 1.7.7 by routing untrusted fetches through a proxy.
Critical Impact
Authenticated users can coerce the Grist server into issuing HTTP/HTTPS requests to internal endpoints, enabling reconnaissance and potential access to credential-bearing services on adjacent networks.
Affected Products
- Grist Labs grist-core versions prior to 1.7.7
- Self-hosted Grist installations exposing document access to users
- Deployments where Grist shares network reachability with internal HTTP/HTTPS services
Discovery Timeline
- 2025-11-13 - CVE-2025-64752 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-64752
Vulnerability Analysis
Grist provides a feature that allows documents to fetch data from arbitrary URLs. The fetch operation executes on the server rather than in the user's browser. Any authenticated user holding access to a document can invoke this functionality. Because the server initiates the outbound connection, it inherits the trust boundary of the host: internal metadata endpoints, loopback services, and private-network APIs become reachable. This class of flaw is categorized as SSRF under [CWE-918].
The practical impact depends on what the Grist server can reach. On cloud-hosted deployments, attackers may target instance metadata services such as http://169.254.169.254/ to enumerate credentials. In enterprise networks, internal admin panels, databases with HTTP interfaces, and unauthenticated management endpoints become exposure points.
Root Cause
The root cause is missing validation and network isolation for server-side URL fetches. The feature accepted user-controlled URLs and issued requests directly from the Grist process without routing them through a segregated proxy or applying an allowlist. Grist 1.7.7 addresses this by directing untrusted fetches through a proxy, which enforces separation between the application's privileged network context and outbound requests originating from user input.
Attack Vector
An authenticated attacker with document access crafts a formula or configuration that triggers the URL-fetch feature. The URL points to an internal-only resource such as a cloud metadata endpoint, a loopback administrative interface, or an internal HTTP service. The Grist server issues the request from its privileged position and returns the response content to the attacker. No user interaction is required beyond the attacker's own session.
No verified public proof-of-concept code is available. See the GitHub Security Advisory GHSA-qh95-2qv8-pqx3 for advisory details.
Detection Methods for CVE-2025-64752
Indicators of Compromise
- Outbound HTTP/HTTPS requests from the Grist server process to link-local addresses such as 169.254.169.254 or RFC1918 ranges not associated with normal application dependencies
- Grist application logs showing URL-fetch operations targeting loopback (127.0.0.1, ::1) or internal hostnames
- Unexpected access patterns to cloud instance metadata endpoints originating from the Grist workload's IAM role
Detection Strategies
- Inspect egress traffic from Grist hosts and flag connections to private, loopback, or metadata IP ranges
- Correlate Grist document-modification events with subsequent outbound fetches to detect abuse of user-supplied URLs
- Alert on anomalous credential use by the Grist service identity, which may indicate metadata-service theft
Monitoring Recommendations
- Ingest Grist application and access logs into a centralized SIEM for query and retention
- Baseline normal outbound destinations for the Grist service and alert on deviations
- Monitor cloud audit logs (AWS CloudTrail, Azure Activity Log, GCP Audit Logs) for use of credentials associated with the Grist instance role
How to Mitigate CVE-2025-64752
Immediate Actions Required
- Upgrade grist-core to version 1.7.7 or later on all self-hosted installations
- Review document access permissions and revoke access from untrusted users pending patch deployment
- Audit outbound network logs from Grist hosts for prior abuse of the URL-fetch feature
Patch Information
Grist Labs released the fix in Grist Core Release v1.7.7. The patch routes untrusted server-side fetches through a proxy so that user-controlled URLs no longer execute in the Grist server's privileged network context. Refer to the GitHub Security Advisory GHSA-qh95-2qv8-pqx3 for advisory guidance.
Workarounds
- Remove or firewall HTTP/HTTPS endpoints reachable from the Grist instance that expose credentials or operate without authentication
- Deploy Grist inside a network segment that cannot reach cloud metadata services or internal management interfaces
- Enforce egress filtering that blocks the Grist process from connecting to RFC1918, loopback, and link-local addresses
# Example iptables egress restriction for the Grist host
iptables -A OUTPUT -m owner --uid-owner grist -d 169.254.169.254 -j REJECT
iptables -A OUTPUT -m owner --uid-owner grist -d 10.0.0.0/8 -j REJECT
iptables -A OUTPUT -m owner --uid-owner grist -d 172.16.0.0/12 -j REJECT
iptables -A OUTPUT -m owner --uid-owner grist -d 192.168.0.0/16 -j REJECT
iptables -A OUTPUT -m owner --uid-owner grist -d 127.0.0.0/8 -j REJECT
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

