CVE-2026-8801
Executive Summary
CVE-2026-8801 is a path equivalence vulnerability in Progress MOVEit Transfer, specifically within the File Upload modules. This flaw allows an unauthenticated attacker to bypass file upload restrictions by manipulating path equivalence characters (e.g., using // or \ instead of /). The vulnerability has a low CVSS score of 3.5 due to its limited impact on integrity, with no confidentiality or availability impact. No public proof-of-concept (PoC) code or exploit templates are currently available, and the EPSS score is 0.0%, indicating a very low probability of exploitation in the wild. However, given MOVEit Transfer's history of critical vulnerabilities (e.g., CVE-2023-34362), this issue should be patched proactively.
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 enterprise file transfer application. Organizations should verify the integrity of their MOVEit Transfer installation and ensure no unauthorized modifications have been made.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
- Base Score: 3.5 (Low)
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: None (UI:N) – No user action required.
- Scope: Unchanged (S:U) – Vulnerability does not affect other components.
- Confidentiality Impact: None (C:N) – No data disclosure.
- Integrity Impact: Low (I:L) – Attacker can upload files to unintended directories.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: Low. The vulnerability only allows file uploads to unintended paths, not arbitrary code execution or data theft. However, it could be chained with other vulnerabilities for greater impact.
Deep Dive & Mechanics
The vulnerability lies in the file upload validation logic of MOVEit Transfer. The application uses path equivalence checks to prevent directory traversal, but fails to account for all path normalization techniques. Specifically, the upload handler does not properly canonicalize paths before validation.
Root Cause: The application uses a blacklist-based approach to block path traversal sequences like ../ but does not normalize path separators or handle double slashes. An attacker can bypass the filter by using:
- Double slashes:
//(e.g.,//etc/passwd) - Backslashes:
\(e.g.,..\..\etc\passwd) - URL-encoded characters:
%2e%2e%2f(e.g.,%2e%2e%2fetc/passwd)
Attack Scenario:
- Attacker sends a multipart HTTP POST request to the file upload endpoint.
- The
filenameparameter contains a path traversal payload using path equivalence characters. - The server validates the filename against a blacklist but fails to normalize the path.
- The file is written to an unintended directory, potentially overwriting configuration files or uploading malicious content to a web-accessible directory.
Impact: While the CVSS score is low, this vulnerability could be used to:
- Upload a web shell to a publicly accessible directory (if combined with a web server misconfiguration).
- Overwrite critical configuration files (e.g.,
web.config,appsettings.json). - Bypass file type restrictions by uploading files to directories with different execution policies.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Vulnerable: Blacklist-based check without path normalization
bool IsValidPath(string filename) {
if (filename.Contains("..") || filename.Contains("%2e")) {
return false;
}
return true;
}
Patched Code (Conceptual):
// Patched: Canonicalize path before validation
bool IsValidPath(string filename) {
string canonicalPath = Path.GetFullPath(filename);
if (!canonicalPath.StartsWith(allowedBasePath)) {
return false;
}
return true;
}
The patched version uses Path.GetFullPath() to resolve all path equivalence characters before checking if the resulting path is within the allowed base directory.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Access to a vulnerable MOVEit Transfer instance (version < 2025.0.8 or 2025.1.0 to 2025.1.3).
- A file upload endpoint (e.g.,
/upload).
Exploitation Steps:
- Identify the file upload endpoint using directory enumeration or API documentation.
- Craft a multipart request with a manipulated filename:
POST /upload HTTP/1.1 Host: target.moveit.local Content-Type: multipart/form-data; boundary=----WebKitFormBoundary ------WebKitFormBoundary Content-Disposition: form-data; name="file"; filename="..\\..\\webroot\\shell.aspx" Content-Type: application/octet-stream <malicious content> ------WebKitFormBoundary-- - Send the request using
curl:curl -X POST https://target.moveit.local/upload \ -F "file=@shell.aspx;filename=..\\..\\webroot\\shell.aspx" - Access the uploaded file at
https://target.moveit.local/webroot/shell.aspx.
Note: No public exploit code is available. The above is a conceptual example.
Blue Team (Detection & Response)
Detection Steps:
- Monitor file upload logs for filenames containing path traversal patterns (e.g.,
..,//,\). - Check for files written outside the expected upload directory.
- Review web server logs for requests with unusual filename parameters.
Hunting Query (Splunk):
index=web_logs source="/var/log/moveit/upload.log"
| search filename IN ("*..*", "*//*", "*\\*")
| table _time, src_ip, filename, file_size
Containment:
- Isolate the affected server.
- Review all uploaded files for malicious content.
- Restore any overwritten configuration files from backup.
Indicators of Compromise (IOCs)
| Type | Indicator | Description |
|---|---|---|
| File | ..\\..\\webroot\\*.aspx |
Files uploaded to unintended directories |
| Log | filename=..\\..\\ |
Path traversal patterns in upload logs |
| Network | POST /upload with filename containing .. |
Suspicious upload requests |
| Network | %2e%2e%2f in request URI |
URL-encoded path traversal |
Detection Engineering
YARA Rule
rule CVE_2026_8801_MOVEit_Path_Equivalence {
meta:
description = "Detects path equivalence patterns in MOVEit Transfer file uploads"
author = "Valters IT"
date = "2026-01-01"
cve = "CVE-2026-8801"
strings:
$path_traversal1 = /filename=[^&]*\.\.\\/ nocase
$path_traversal2 = /filename=[^&]*%2e%2e%2f/ nocase
$path_traversal3 = /filename=[^&]*\/\// nocase
condition:
any of them
}
Sigma Rule
title: CVE-2026-8801 MOVEit Transfer Path Equivalence Upload
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects file upload requests with path equivalence patterns targeting MOVEit Transfer
author: Valters IT
date: 2026/01/01
logsource:
category: webserver
product: iis
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/upload'
cs-uri-query|contains:
- '..\\'
- '%2e%2e%2f'
- '//'
condition: selection
falsepositives:
- Legitimate use of double slashes in filenames (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2026-8801 MOVEit Transfer Path Equivalence Upload"; flow:to_server,established; content:"POST"; http_method; content:"/upload"; http_uri; content:"filename"; http_client_body; pcre:"/filename=[^&]*(\.\.\\|%2e%2e%2f|\/\/)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade to MOVEit Transfer 2025.0.8 or 2025.1.4.
- If patching is not possible, restrict file upload functionality to trusted IP addresses only.
- Implement a Web Application Firewall (WAF) rule to block path traversal patterns:
location /upload { if ($args ~* "filename=.*\.\.") { return 403; } }
Long-term Measures:
- Use a positive security model for file uploads (allowlist allowed directories).
- Implement path canonicalization in all file handling code.
- Conduct regular security audits of file upload functionality.
Valters IT Signature:
Report generated by Valters IT DevSecOps Framework. For questions, contact security@valters-it.com.