CVE-2025-64430 Overview
CVE-2025-64430 is a Server-Side Request Forgery (SSRF) vulnerability [CWE-918] in Parse Server, an open source backend that runs on Node.js. The flaw exists in the file upload functionality, where uploading a Parse.File with a uri parameter causes the server to issue an HTTP request to an attacker-controlled URI. Affected versions include 4.2.0 through 7.5.3 and 8.0.0 through 8.3.1-alpha.1. Fixed releases are 7.5.4 and 8.4.0-alpha.1.
Critical Impact
Unauthenticated attackers can force Parse Server to execute arbitrary outbound HTTP requests and crash the server upon receiving the response, resulting in denial of service.
Affected Products
- Parse Server versions 4.2.0 through 7.5.3
- Parse Server versions 8.0.0 through 8.3.1-alpha.1
- Node.js applications relying on Parse Server file upload via URI
Discovery Timeline
- 2025-11-07 - CVE-2025-64430 published to NVD
- 2026-04-15 - Last updated in NVD database
Technical Details for CVE-2025-64430
Vulnerability Analysis
Parse Server exposes a file upload feature that accepts a uri field within a Parse.File object. When the request is processed, the server fetches the resource from the supplied URI on behalf of the client. The fetched response is intended to be stored as the file's binary data, base64-encoded, in Parse Server's configured file storage.
An unauthenticated attacker can supply any reachable URI, including internal endpoints behind the network perimeter. This pattern matches the classic SSRF model: the server becomes a confused deputy issuing requests on the attacker's behalf. The response handling logic additionally triggers a server crash, producing a reliable denial-of-service primitive on top of the SSRF.
Root Cause
The vulnerable logic resides in src/Routers/FilesRouter.js. The helper downloadFileFromURI accepts any URI and issues an http.get request without validating the scheme, host, or destination network. The addFileDataIfNeeded function invokes this helper whenever file._source.format === 'uri'. There is no allowlist, no DNS rebinding protection, and no isolation between Parse Server and internal services.
Attack Vector
The attack is network-reachable and requires no authentication or user interaction. An attacker submits a file creation request with a uri value pointing at an internal service such as a cloud metadata endpoint, an admin interface, or any URL the attacker wants the server to fetch. Parse Server resolves and requests the URI, then crashes when processing the response, ending availability for legitimate clients.
// Vulnerable code removed by the security patch in src/Routers/FilesRouter.js
-const http = require('http');
-
-const downloadFileFromURI = uri => {
- return new Promise((res, rej) => {
- http
- .get(uri, response => {
- response.setDefaultEncoding('base64');
- let body = `data:${response.headers['content-type']};base64,`;
- response.on('data', data => (body += data));
- response.on('end', () => res(body));
- })
- .on('error', e => {
- rej(`Error downloading file from ${uri}: ${e.message}`);
- });
- });
-};
-
-const addFileDataIfNeeded = async file => {
- if (file._source.format === 'uri') {
- const base64 = await downloadFileFromURI(file._source.uri);
- file._previousSave = file;
- file._data = base64;
- file._requestTask = null;
- }
- return file;
-};
// Source: https://github.com/parse-community/parse-server/commit/8bbe3efbcf4a3b66f4a8db9bfb18cd98c050db51
The patch removes the downloadFileFromURI helper and the addFileDataIfNeeded URI branch entirely, eliminating server-initiated fetches from user-controlled URIs.
Detection Methods for CVE-2025-64430
Indicators of Compromise
- POST requests to Parse Server /parse/files/ endpoints containing a JSON body with a uri property.
- Outbound HTTP connections from the Parse Server process to internal IP ranges (RFC1918, link-local 169.254.169.254, loopback) shortly after a file upload request.
- Repeated Parse Server process restarts or crash loops correlated with file upload activity.
Detection Strategies
- Inspect application logs and reverse proxy logs for Parse.File create requests where the payload includes a uri field referencing non-public hosts.
- Correlate Parse Server crash events with preceding inbound /files API calls to identify exploitation attempts.
- Use egress filtering telemetry to flag Parse Server originating requests to cloud metadata services or internal management interfaces.
Monitoring Recommendations
- Enable verbose request logging on Parse Server and forward to a centralized log platform for query and alerting.
- Alert on outbound connections from Node.js application hosts to internal-only IP ranges that previously had no such egress pattern.
- Track Parse Server uptime and unexpected process termination events through your container or process supervisor metrics.
How to Mitigate CVE-2025-64430
Immediate Actions Required
- Upgrade Parse Server to version 7.5.4 or 8.4.0-alpha.1 or later as published in GitHub Security Advisory GHSA-x4qj-2f4q-r4rx.
- Audit recent application and proxy logs for file upload requests containing a uri parameter targeting internal hosts.
- Restrict egress from Parse Server hosts to only the destinations required for normal operation.
Patch Information
The fix is delivered in Parse Server 7.5.4 and 8.4.0-alpha.1. The change removes the URI-based file ingestion path in src/Routers/FilesRouter.js. See GitHub Pull Request #9903 and GitHub Pull Request #9904 for the upstream changes, and the GitHub commit for the patch diff.
Workarounds
- Place Parse Server behind a reverse proxy or web application firewall that rejects requests with a uri field in Parse.File payloads until patching is complete.
- Block outbound traffic from the Parse Server container or VM to cloud metadata endpoints such as 169.254.169.254 and to internal management subnets.
- Run Parse Server in a network segment with deny-by-default egress, allowing only explicit destinations such as the configured database and object storage.
# Upgrade Parse Server to a fixed version
npm install parse-server@7.5.4
# Verify installed version
npm ls parse-server
# Example egress restriction using iptables on the host running Parse Server
iptables -A OUTPUT -d 169.254.169.254 -j DROP
iptables -A OUTPUT -d 10.0.0.0/8 -p tcp -m multiport --dports 80,443 -j DROP
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


