CVE-2025-27602
Executive Summary
CVE-2025-27602 is an authorization bypass vulnerability in the Umbraco CMS backoffice, affecting versions prior to 10.8.9 and 13.7.1. An authenticated backoffice user can manipulate API URLs to retrieve or delete content or media stored in folders they do not have explicit access to. This is a classic Insecure Direct Object Reference (IDOR) issue, classified under CWE-639. The vulnerability has a CVSS score of 4.9 (Medium), with a low attack complexity but requiring authenticated access. No public proof-of-concept (PoC) or exploit code has been released, and the EPSS score is 0.0%, indicating a low probability of exploitation in the wild. However, given the nature of the vulnerability and the widespread use of Umbraco, it poses a significant risk to organizations that have not patched.
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
Umbraco is a .NET CMS distributed via NuGet. The vulnerability exists in the core web backoffice project. Organizations should verify their Umbraco package versions and ensure they are updated to the patched releases (10.8.9 or 13.7.1). There is no known compromise of the supply chain, but the lack of a workaround makes patching critical.
CVSS Breakdown & Threat Level
- CVSS Score: 4.9 (Medium)
- Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
- Attack Vector (AV): Network – the vulnerability is exploitable remotely.
- Attack Complexity (AC): Low – no special conditions are required.
- Privileges Required (PR): Low – an attacker needs a valid backoffice user account.
- User Interaction (UI): None – no user action is needed.
- Scope (S): Unchanged – the vulnerable component is the same as the affected component.
- Confidentiality (C): Low – limited information disclosure (content/media metadata or content).
- Integrity (I): Low – limited ability to delete content.
- Availability (A): None – no impact on availability.
Threat Level: Medium. The requirement for authentication reduces the attack surface, but the potential for data exfiltration or unauthorized deletion of content makes it a serious concern for organizations with multiple backoffice users.
Deep Dive & Mechanics
The vulnerability lies in the Umbraco backoffice API endpoints that handle content and media retrieval and deletion. These endpoints rely on user-provided identifiers (e.g., folder IDs, content IDs) without properly verifying that the authenticated user has the necessary permissions for the specific resource.
Root Cause: The application fails to enforce authorization checks on the target resource after the user is authenticated. The API validates that the user is logged in but does not verify that the user has the required permissions (e.g., "read" or "delete" access) for the specific folder or content item being accessed.
Attack Vector: An authenticated backoffice user can craft HTTP requests to the API endpoints, manipulating parameters such as id, folderId, or path to reference resources outside their authorized scope. For example:
- A user with access to Folder A can change the
folderIdparameter to point to Folder B (which they should not have access to) and retrieve or delete its contents.
Impact:
- Confidentiality: Unauthorized reading of content or media metadata and files.
- Integrity: Unauthorized deletion of content or media.
- No direct RCE or privilege escalation is reported, but the ability to delete content can lead to data loss.
Vulnerable vs. Patched Code
The exact code changes are not publicly available, but based on the vulnerability description, the fix likely involves adding authorization checks to the API endpoints.
Vulnerable Code (Conceptual):
[HttpGet]
public IActionResult GetContent(int id)
{
var content = _contentService.GetById(id);
// Missing authorization check
return Ok(content);
}
Patched Code (Conceptual):
[HttpGet]
public IActionResult GetContent(int id)
{
var content = _contentService.GetById(id);
if (!_authorizationService.UserHasAccess(User, content))
{
return Forbid();
}
return Ok(content);
}
The patched version ensures that the user's permissions are checked against the specific resource before returning data or performing actions.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A valid Umbraco backoffice user account with any level of access.
- Network access to the Umbraco instance.
Exploitation Steps:
- Identify API Endpoints: Use browser developer tools or a proxy (e.g., Burp Suite) to capture API requests when accessing content or media in the backoffice.
- Manipulate Parameters: Modify the
idorfolderIdparameter in the request to reference a resource outside the user's authorized scope. - Execute Request: Send the modified request using a tool like
curlor Burp Repeater.
Example Request (Retrieve Content):
curl -X GET "https://target.umbraco.com/umbraco/backoffice/api/content/GetContent?id=123" \
-H "Cookie: .AspNet.Cookies=your_session_cookie"
Example Request (Delete Content):
curl -X DELETE "https://target.umbraco.com/umbraco/backoffice/api/content/DeleteContent?id=456" \
-H "Cookie: .AspNet.Cookies=your_session_cookie"
Note: No public exploit code is available. The above examples are conceptual.
Blue Team (Detection & Defense)
Detection:
- Monitor API logs for unusual patterns, such as a single user accessing a large number of different folder IDs in a short period.
- Look for HTTP 403 (Forbidden) responses followed by successful requests to the same endpoint, indicating a user testing boundaries.
- Alert on requests to sensitive API endpoints (e.g.,
GetContent,DeleteContent) with parameters that do not match the user's typical access patterns.
Defense:
- Apply the patch immediately (versions 10.8.9 or 13.7.1).
- Implement strict access controls and review user permissions regularly.
- Use Web Application Firewall (WAF) rules to block requests with suspicious parameter manipulation (e.g., sequential IDs, out-of-range values).
- Enable detailed audit logging for all backoffice API calls.
Indicators of Compromise (IOCs)
Network IOCs:
- HTTP requests to
/umbraco/backoffice/api/content/GetContentor/umbraco/backoffice/api/media/GetMediawith manipulatedidparameters. - Repeated HTTP 403 responses followed by successful 200 responses to the same endpoint.
- Unusual patterns of content deletion requests from a single user.
- HTTP requests to
Host IOCs:
- Umbraco log entries showing
Authorization failedorAccess deniedfor specific content IDs. - Sudden changes in content or media structure (e.g., missing folders, deleted items) without corresponding audit trail.
- Umbraco log entries showing
File IOCs:
- No specific file-based IOCs are known.
Detection Engineering
YARA Rule
rule CVE_2025_27602_Umbraco_IDOR {
meta:
description = "Detects potential exploitation of CVE-2025-27602 in Umbraco logs"
author = "Valters IT"
date = "2025-03-01"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-27602"
strings:
$s1 = "GetContent" nocase
$s2 = "DeleteContent" nocase
$s3 = "GetMedia" nocase
$s4 = "DeleteMedia" nocase
$s5 = "Authorization failed" nocase
condition:
any of ($s1, $s2, $s3, $s4) and $s5
}
Sigma Rule
title: Umbraco Backoffice IDOR Exploitation Attempt
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2025-27602 by manipulating API parameters
author: Valters IT
date: 2025-03-01
logsource:
category: webserver
product: umbraco
detection:
selection:
cs-uri-query|contains:
- "GetContent"
- "DeleteContent"
- "GetMedia"
- "DeleteMedia"
cs-uri-query|re: 'id=\d+'
condition: selection
falsepositives:
- Legitimate administrative actions
level: medium
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-27602 Umbraco IDOR Attempt"; flow:to_server; content:"/umbraco/backoffice/api/"; http_uri; content:"GetContent" or content:"DeleteContent" or content:"GetMedia" or content:"DeleteMedia"; http_uri; pcre:"/id=\d+/Ui"; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Patch: Upgrade Umbraco to version 10.8.9 or 13.7.1 immediately. No workarounds are available.
- Verify: After patching, test the backoffice API endpoints to ensure the vulnerability is resolved.
Long-Term Mitigations:
- Implement the principle of least privilege for all backoffice users.
- Regularly audit user permissions and remove unnecessary access.
- Enable and monitor detailed audit logs for all API calls.
- Use a Web Application Firewall (WAF) to detect and block parameter manipulation attempts.
- Conduct regular security assessments and penetration testing.
Valters IT Signature
This report was generated by Valters IT DevSecOps & CTI Expert System.