CVE-2025-53709
Executive Summary
CVE-2025-53709 is a medium-severity vulnerability in Palantir's secure-upload service, a data submission service that validates single-use tokens. The vulnerability allows authenticated privileged users to redirect submission channels to attacker-controlled datasets, enumerate existing enrollments, and check for the existence of resources across enrollments. The service is only installed on a small number of environments, and the patch has been automatically deployed to all Apollo-managed Foundry instances.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Supply Chain & Package Security
This vulnerability is not related to an open-source package (NPM, PyPI, Go, Ruby). It affects a proprietary Palantir service deployed in Foundry environments.
CVSS Breakdown & Threat Level
- CVSS Score: 5.4 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: Low (PR:L) – requires authenticated privileged user
- User Interaction: None (UI:N)
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L) – enumeration of enrollments and resource existence
- Integrity Impact: Low (I:L) – redirection of submission channels
- Availability Impact: None (A:N)
Threat Level: Medium. The vulnerability requires authentication and privileges, limiting the attack surface. However, it could lead to data exfiltration via channel redirection and information disclosure via enumeration.
Deep Dive & Mechanics
The secure-upload service has four distinct issues:
- Email Template Selection Bypass: Privileged users could select email templates not intended for their enrollment when sending data upload requests. This could lead to information disclosure or social engineering attacks.
- Submission Channel Redirection: Authenticated privileged users could abuse an endpoint to redirect existing submission channels to a dataset they control. This could allow data exfiltration by intercepting submissions.
- Enrollment Enumeration (Unauthenticated): An endpoint handling domain validation allowed unauthenticated attackers to enumerate existing enrollments by observing responses.
- Resource Existence Enumeration: Other endpoints allowed authenticated users to check if a resource with a known RID exists across enrollments, enabling reconnaissance.
The root cause is insufficient authorization checks and improper input validation on several API endpoints.
Vulnerable vs. Patched Code
The patch (version 0.815.0) addresses these issues by:
- Enforcing proper authorization checks for email template selection.
- Validating that submission channel redirection targets are within the user's enrollment.
- Adding authentication and rate limiting to the domain validation endpoint.
- Restricting resource existence checks to the user's own enrollment.
Vulnerable Code (Conceptual):
# Vulnerable: No authorization check on email template selection
def send_upload_request(enrollment_id, template_id):
template = get_email_template(template_id)
send_email(template, enrollment_id)
Patched Code (Conceptual):
# Patched: Authorization check on email template selection
def send_upload_request(enrollment_id, template_id):
template = get_email_template(template_id)
if template.enrollment_id != enrollment_id:
raise PermissionError("Template not allowed for this enrollment")
send_email(template, enrollment_id)
Exploitation & Lab Setup
Red Team
Prerequisites:
- Valid credentials for a privileged user in a Palantir Foundry environment.
- Network access to the secure-upload service.
Exploitation Steps:
Enumerate Enrollments (Unauthenticated):
curl -X POST "https://secure-upload.example.com/api/validate-domain" \ -H "Content-Type: application/json" \ -d '{"domain": "target-enrollment.example.com"}'Observe response differences to identify valid enrollments.
Redirect Submission Channel (Authenticated):
curl -X POST "https://secure-upload.example.com/api/channels/CHANNEL_ID/redirect" \ -H "Authorization: Bearer <TOKEN>" \ -H "Content-Type: application/json" \ -d '{"target_dataset": "attacker-controlled-dataset"}'Check Resource Existence (Authenticated):
curl -X GET "https://secure-upload.example.com/api/resources/ri.foundry.main.dataset.abc123" \ -H "Authorization: Bearer <TOKEN>"
Blue Team
Detection:
- Monitor for unusual API calls to
/api/validate-domainfrom unauthenticated sources. - Alert on POST requests to
/api/channels/*/redirectwith unexpected target datasets. - Monitor for enumeration patterns (multiple requests to resource existence endpoints).
Hunting:
- Review logs for
403 Forbiddenresponses followed by successful requests to the same endpoints. - Look for anomalies in email template selection (templates from other enrollments).
Indicators of Compromise (IOCs)
Network IOCs:
- Unusual POST requests to
/api/validate-domainwith multiple domain values. - POST requests to
/api/channels/*/redirectwith target datasets not in the user's enrollment. - GET requests to
/api/resources/*with RIDs from different enrollments.
- Unusual POST requests to
Log IOCs:
"template_id"values not matching the enrollment insend_upload_requestevents."target_dataset"values not matching the enrollment inredirect_channelevents.- Multiple
"validate_domain"requests from the same IP in a short time.
Detection Engineering
YARA Rule
rule detect_secure_upload_enumeration {
meta:
description = "Detects enumeration attempts against Palantir secure-upload service"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-53709"
strings:
$s1 = "/api/validate-domain" ascii wide nocase
$s2 = "/api/resources/" ascii wide nocase
$s3 = "/api/channels/" ascii wide nocase
condition:
any of ($s*) and #s1 > 5
}
Sigma Rule
title: Palantir Secure-Upload Enumeration Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects enumeration attempts against Palantir secure-upload service (CVE-2025-53709)
author: Valters IT
date: 2025-04-10
logsource:
category: web
product: palantir
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/api/validate-domain'
condition: selection
falsepositives:
- Legitimate domain validation by authorized users
level: medium
Suricata Rule
alert http $EXTERNAL_NET any -> $HOME_NET any (
msg:"CVE-2025-53709 Palantir Secure-Upload Enrollment Enumeration";
flow:to_server;
content:"POST"; http_method;
content:"/api/validate-domain"; http_uri;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Patch: Ensure all Apollo-managed Foundry instances have been updated to version 0.815.0 or later.
- Verify: Confirm the patch has been applied by checking the service version.
- Audit: Review logs for any signs of exploitation prior to patching.
Long-Term Mitigations:
- Implement strict authorization checks on all API endpoints.
- Add rate limiting to enumeration-prone endpoints.
- Conduct regular security reviews of API design.
- Monitor for anomalous API usage patterns.
Workarounds (if patching is delayed):
- Restrict network access to the secure-upload service.
- Implement WAF rules to block enumeration patterns.
- Disable the vulnerable endpoints if possible.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.