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

CVE-2024-32981

CVE-2024-32981 Cross-Site Scripting in Silverstripe
📅 PUBLISHED: 2024-07-17 19:36 UTC 🔄 UPDATED: 2026-09-23 20:30 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.35%
👁️
0.35% probability
8.7× 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.
Patch available — upgrade to latest release
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
5.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-32981 is a stored Cross-Site Scripting (XSS) vulnerability in the Silverstripe Framework, the PHP foundation for Silverstripe CMS. An authenticated attacker with CMS content editing privileges can inject a malicious JavaScript payload that bypasses server-side sanitization. The payload is sanitized client-side but not server-side, allowing it to execute in the context of a victim's browser when viewing the affected page. The vulnerability is patched in version 5.2.16. The EPSS score is 0.0%, indicating low exploitation activity, but the risk remains for unpatched instances.

⚡ 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

This vulnerability affects the Silverstripe Framework, a PHP package. Organizations using Silverstripe CMS should verify their framework version and apply the patch immediately. No known malicious packages have been reported in the supply chain.

CVSS Breakdown & Threat Level

CVSS Score: 5.4 (Medium) Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

  • Attack Vector (AV): Network – The attack is executed over the network.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): Low – The attacker needs CMS edit access.
  • User Interaction (UI): Required – The victim must view the malicious content.
  • Scope (S): Changed – The vulnerability impacts resources beyond the original scope.
  • Confidentiality (C): Low – Limited data exposure.
  • Integrity (I): Low – Limited ability to modify content.
  • Availability (A): None – No impact on availability.

Threat Level: Medium. The requirement for authenticated access reduces the attack surface, but the potential for session hijacking or phishing within the CMS context is significant.

Deep Dive & Mechanics

The vulnerability lies in the server-side HTML sanitization logic within the Silverstripe Framework. When a user with CMS edit access submits content, the framework sanitizes it to prevent XSS. However, a specifically crafted encoded payload can bypass this server-side filter. The client-side sanitization (e.g., in the browser) may catch the payload, but the server-side check fails to decode or properly handle the encoding, allowing the malicious script to be stored and later served to other users.

The attack flow:

  1. Attacker logs into the CMS with edit privileges.
  2. Attacker crafts a payload using encoding techniques (e.g., double URL encoding, Unicode escapes) that the server-side sanitizer does not decode.
  3. The payload is stored in the database.
  4. When a victim (e.g., another admin or site visitor) views the page, the payload is rendered and executed in their browser.

The fix in version 5.2.16 updates the server-side sanitization to properly decode and sanitize such encoded payloads.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual):

// Vulnerable: Server-side sanitization does not decode encoded payloads
$sanitized = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
// The encoded payload passes through because it is not decoded first

Patched Code (Conceptual):

// Patched: Decode the input before sanitization
$decoded = html_entity_decode($input, ENT_QUOTES, 'UTF-8');
$sanitized = htmlspecialchars($decoded, ENT_QUOTES, 'UTF-8');
// Additional checks for other encoding schemes

The actual patch in Silverstripe Framework 5.2.16 involves updating the SilverStripe\View\Parsers\ShortcodeParser or related sanitization classes to handle encoded content.

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • Access to a Silverstripe CMS instance with edit permissions.
  • Knowledge of the target CMS version (< 5.2.16).

Exploitation Steps:

  1. Log in to the CMS as an editor.
  2. Navigate to a content page (e.g., a blog post or page).
  3. Inject a payload using double URL encoding or Unicode escapes. Example payload:
    <img src=x onerror="alert('XSS')">
    
    Encoded as:
    %253Cimg%2520src%253Dx%2520onerror%253D%2522alert('XSS')%2522%253E
    
    (Double URL encoding: %25 represents %, so %253C decodes to %3C which decodes to <)
  4. Save the page.
  5. When another user views the page, the payload executes.

Note: No public exploit code is available for this CVE.

Blue Team (Defensive)

Detection:

  • Monitor CMS audit logs for suspicious content edits containing encoded strings.
  • Use WAF rules to block double-encoded payloads in POST requests.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.

Hunting:

  • Search database for stored content containing patterns like %25 or &# (HTML entities).
  • Review server logs for requests with encoded payloads in the body.

Lab Setup:

  • Deploy a vulnerable Silverstripe CMS instance (version < 5.2.16) in an isolated environment.
  • Use a tool like Burp Suite to intercept and modify CMS content submissions.
  • Test with encoded payloads to confirm the vulnerability.

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to CMS endpoints (e.g., /admin/pages/edit/EditForm) containing double-encoded strings.
  • Host: Stored content in the database with patterns like %25 or &# followed by HTML tags.
  • Logs: CMS audit logs showing edits with unusual encoding.
  • File: No specific file IOCs; the vulnerability is data-driven.

Detection Engineering

YARA Rule

rule CVE_2024_32981_Silverstripe_XSS {
    meta:
        description = "Detects encoded XSS payloads targeting Silverstripe CMS"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-32981"
    strings:
        $encoded1 = /%25(3C|3E|22|27|60)/
        $encoded2 = /&#(x27|x3C|x3E|x22|x60)/
        $html_tag = /<[^>]*onerror\s*=|onload\s*=|onclick\s*=/
    condition:
        any of ($encoded*) and $html_tag
}

Sigma Rule

title: CVE-2024-32981 - Silverstripe CMS Stored XSS via Encoded Payload
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit stored XSS in Silverstripe CMS by submitting encoded payloads
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/admin/pages/edit/EditForm'
        cs-body|contains: 
            - '%25'
            - '&#x'
    condition: selection
falsepositives:
    - Legitimate use of encoded characters in content
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-32981 - Silverstripe CMS Stored XSS via Encoded Payload"; flow:to_server,established; content:"POST"; http_method; content:"/admin/pages/edit/EditForm"; http_uri; content:"%25"; http_client_body; pcre:"/%25(3C|3E|22|27|60)/Ri"; classtype:web-application-attack; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade Silverstripe Framework to version 5.2.16 or later.
  2. If upgrade is not possible, restrict CMS edit access to trusted users only.
  3. Implement a Web Application Firewall (WAF) rule to block double-encoded payloads.

Long-Term Measures:

  • Regularly update Silverstripe CMS and Framework.
  • Conduct security training for CMS editors on safe content handling.
  • Enable Content Security Policy (CSP) headers to limit script execution.
  • Monitor CMS audit logs for suspicious activity.

Workarounds:

  • No official workarounds are available. The only fix is to upgrade.

Valters IT
DevSecOps & Cyber Threat Intelligence
Report generated for CVE-2024-32981

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-32981/ · 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.