CVE-2025-54425

5.3 MEDIUM

📋 TL;DR

This vulnerability allows unauthorized users to access cached content from Umbraco's Content Delivery API even when API key authentication is required. Attackers can retrieve sensitive cached responses if a legitimate user with a valid API key recently accessed the same endpoint. This affects Umbraco CMS installations using both API key authentication and output caching.

💻 Affected Systems

Products:
  • Umbraco CMS
Versions: 13.0.0-13.9.2, 15.0.0-15.4.1, 16.0.0-16.1.0
Operating Systems: Windows, Linux
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when both Content Delivery API key authentication AND output caching are enabled together.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Sensitive content intended only for authorized users is exposed to the public, potentially leaking confidential data, user information, or proprietary content.

🟠

Likely Case

Unauthorized access to cached API responses containing non-critical but potentially sensitive content that should be protected.

🟢

If Mitigated

Limited exposure of cached content with minimal sensitive data, or no impact if caching is disabled or API keys aren't required.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires knowledge of API endpoints and timing to hit recently cached responses.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 13.9.3, 15.4.4, 16.1.1

Vendor Advisory: https://github.com/umbraco/Umbraco-CMS/security/advisories/GHSA-75vq-qvhr-7ffr

Restart Required: Yes

Instructions:

1. Backup your Umbraco installation and database. 2. Update to the patched version via NuGet package manager or manual upgrade. 3. Restart the application pool or IIS. 4. Verify the fix by testing API access with and without valid API keys.

🔧 Temporary Workarounds

Disable output caching

all

Temporarily disable output caching for the Content Delivery API to prevent cache poisoning attacks.

Modify Umbraco configuration to set output caching to false for Content Delivery API endpoints

Disable API key authentication

all

Remove API key requirement if caching is essential and content sensitivity allows.

Update Content Delivery API configuration to remove API key authentication requirement

🧯 If You Can't Patch

  • Disable output caching for Content Delivery API endpoints
  • Implement additional authentication layer (IP whitelisting, WAF rules) for API endpoints

🔍 How to Verify

Check if Vulnerable:

Check if using affected Umbraco version AND both API key authentication and output caching are enabled for Content Delivery API.

Check Version:

Check Umbraco version in admin dashboard or via /umbraco/api/version endpoint

Verify Fix Applied:

Test API endpoints with valid API key, then immediately test same endpoint without API key - should receive 401/403 instead of cached response.

📡 Detection & Monitoring

Log Indicators:

  • Multiple 200 responses to same API endpoint from different IPs without API key headers
  • API requests with missing/invalid API keys returning cached content

Network Indicators:

  • Unauthorized HTTP GET requests to Content Delivery API endpoints returning 200 status
  • Repeated requests to same API paths without authentication headers

SIEM Query:

source="umbraco" AND (uri_path CONTAINS "/umbraco/delivery/api" OR uri_path CONTAINS "/api/delivery") AND http_status=200 AND NOT (http_header CONTAINS "Api-Key" OR http_header CONTAINS "Authorization")

🔗 References

📤 Share & Export