Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2026-9558-poc — Exploitierbarkeit PoC für CVE-2026-9558 (SSTI Mautic Theme) | Kitploit
Tools/GitHubGitHub/covepseng/cve-2026-9558-poc
Privilege EscalationSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungPayload-EntwicklungLabs & Praxis
GitHubcovepseng/cve-2026-9558-poc

cve-2026-9558-poc

Exploitierbarkeit PoC für CVE-2026-9558 (SSTI Mautic Theme)

Repository anzeigen
13vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-9558 — Mautic Theme Templates Server-Side Template Injection (SSTI) zur vollständigen Administrator-Übernahme

Table of Contents

  • Überblick
  • Betroffene Versionen
  • Grundursache
  • Analyse
  • Repository-Struktur
  • Voraussetzungen
  • Verwendung
  • Erwartete Ausgabe
  • Referenzen
  • Haftungsausschluss

Überblick

CVE-2026-9558 ist eine Server-Side Template Injection (SSTI)-Sicherheitslücke in der Theme-Engine von Mautic. Über den Theme-Manager hochgeladene Themes sind ZIP-Archive, die Twig-Vorlagen enthalten. In betroffenen Versionen werden diese Vorlagen von der standardmäßigen Twig-Environment der Anwendung ohne angehängte SandboxExtension-Richtlinie gerendert.

Da Twig über Filter wie map, filter und reduce beliebige PHP-Callables aufrufen kann, kann ein authentifizierter Benutzer mit Berechtigungen zum Hochladen von Themes ein Theme installieren, dessen Vorlage beim Rendern einen beliebigen Systembefehl ausführt – was automatisch geschieht, sobald ein Benutzer den E-Mail- oder Landing-Page-Builder für dieses Theme öffnet.

root@kitploit:~
{{ ["id"] | map("system") | join }}

Betroffene Versionen

Betroffener BereichBehoben in
>= 1.3.0, < 4.4.134.4.13 (4.4.20 via ELTS)
>= 5.0.0, < 5.2.115.2.11
>= 6.0.0, < 6.0.96.0.9
>= 7.0.0, < 7.1.27.1.2

Diese Laborumgebung zielt auf 7.1.1 ab, die letzte Version vor dem Fix.


Grundursache

In der Entwicklerdokumentation von Mautic heißt es, dass Theme-Vorlagen in einer eingeschränkten Twig-Sandbox gerendert werden:

Mautic rendert benutzerhochgeladene Theme-Vorlagen in einer eingeschränkten Twig-Sandbox-Umgebung. Die Sandbox blockiert bestimmte Funktionen und Filter, die Remote-Code-Ausführung, Datenlecks oder Dateisystem-Zugriff ermöglichen könnten.

In betroffenen Versionen existiert diese Sandbox-Richtlinie nicht. Der Fix (7.1.2) führt ThemeSandboxPolicy.php ein, eine denylist-basierte Implementierung von SecurityPolicyInterface, die die Filter map, filter und reduce sowie eine Reihe von Funktionen blockt, darunter source() (beliebiges Dateilesen) und configGetParameter() (gibt DB-Anmeldedaten und den geheimen Anwendungsschlüssel preis). Der Inline-Kommentar des Fixes dokumentiert die exakte Payload-Form, die in diesem PoC verwendet wird:

root@kitploit:~
private const DENIED_FILTERS = [
    'map',    // {{ ['id']|map('system')|join }} -> RCE
    'reduce',
    'filter',
];

Vor dieser Richtlinie existierte keine derartige Einschränkung auf irgendeinem Theme-Rendering-Pfad.


Analyse

Die Kette wurde Ende-zu-Ende gegen ein Konto mit niedrigen Privilegien validiert, das nur über die Berechtigungsgruppen Themes (erstellen/bearbeiten) und Emails (erstellen/bearbeiten) verfügt – nicht Administrator – um der PR:L-Vorbedingung im CVSS-Vektor der Advisory zu entsprechen.

  1. Befehlsausführung – das Hochladen eines modifizierten Themes und das Öffnen des E-Mail-Builders führt die in der .twig-Datei des Themes eingebetteten system()-Aufrufe aus.
  2. Anmeldedaten-Diebstahl – das gleiche Primitive liest Mautics eigene config/local.php, und legt die Datenbank-Anmeldedaten sowie den secret_key der Anwendung im Klartext offen.
  3. Privilegieneskalation – die gestohlenen Datenbank-Anmeldedaten werden verwendet, um eine direkte PDO-Verbindung aus der SSTI-Payload heraus zu öffnen und das Konto mit niedrigen Privilegien auf role_id 1 (Administrator) zu befördern, wobei die anwendungsspezifischen Berechtigungsprüfungen von Mautic vollständig umgangen werden.
root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)
root@kitploit:~
'db_host' => 'mautic-db',
'db_user' => 'mautic',
'db_password' => 'mauticpass',
'secret_key' => 'a15d98da823d751f4a0a5219123f4afbd90eb254074b1cea07518a3c0db70bcd',
root@kitploit:~
rows_updated=1
confirm: 2|priv-esc|1

Empirisch bestätigte Vorbedingungen

Die Advisory gibt PR:L an. Diese Laborumgebung bestätigt die spezifische Vorbedingung niedriger Privilegien in der Praxis: Um den Render-Trigger zu erreichen, sind sowohl Theme-Upload-Berechtigungen als auch E-Mail-Erstellungsberechtigungen erforderlich – nicht eine einzelne generische niedrige Berechtigung. Es gibt keine Umgehung jenseits des offiziellen Fixes, die dies einschränkt; die einzige dokumentierte Abschwächung ist die Einschränkung von core:themes:create auf vertrauenswürdige Administratoren.


Repository-Struktur

root@kitploit:~
cve-2026-9558-poc/
├── podman-compose.yml       # MariaDB + Mautic 7.1.1-Apache, isoliertes Bridge-Netzwerk
├── Dockerfile.mautic        # fixiert das offizielle Image auf die anfällige Version
├── install.sh                # nicht-interaktives mautic:install Bootstrap
└── sparse/
    ├── config.json           # bösartiges Theme-Manifest
    ├── sparse.zip            # bereit zum Hochladen des Themes
    └── html/
        ├── email.html.twig   # SSTI-Payload-Vorlage. Schauen Sie an das Ende der Datei, wo der Platzhalter zum Injizieren beliebiger Befehle ist.
        ├── ...               # Andere .twig-Dateien
        └── .../              # Andere Verzeichnisse (z.B. css)

Voraussetzungen

ToolVersionNotes
Podman≥ 4.0podman-compose erforderlich
curlanywird von install.sh verwendet, um die Bereitschaft abzufragen

Die Ausnutzung in diesem PoC erfolgt manuell über die Mautic-Web-Oberfläche (Theme-Manager-Upload → E-Mail-Builder), was dem tatsächlichen Angreifer-Workflow entspricht: Theme-Upload ist ein Datei-Vorgang, kein API-Aufruf, der für diese Analysephase eine Automatisierung rechtfertigen würde.


Verwendung

1. Labor erstellen und starten

root@kitploit:~
podman-compose up -d
./install.sh

install.sh wartet, bis der App-Container Verbindungen akzeptiert, und führt dann mautic:install nicht-interaktiv aus, um das erste Administratorkonto einzurichten.

2. Ein Konto mit niedrigen Privilegien erstellen

Erstellen Sie über die Benutzeroberfläche eine benutzerdefinierte Rolle, in der nur Themes (erstellen/bearbeiten) und Emails (erstellen/bearbeiten) aktiviert sind, und weisen Sie dieser Rolle einen Benutzer zu. Dies reproduziert die PR:L-Vorbedingung anstatt als Administrator zu testen.

3. Das bösartige Theme hochladen

Melden Sie sich als Benutzer mit niedrigen Privilegien an. Laden Sie über Themes → Upload ein ZIP hoch, das aus sparse/config.json und sparse/html/page.html.twig erstellt wurde (oder eine modifizierte Kopie eines integrierten Themes, dem die Payload-Zeile zur .twig-Datei hinzugefügt wurde).

4. Das Rendern auslösen

Wählen Sie unter Channels → Emails → New das hochgeladene Theme als Vorlage aus und öffnen Sie den Builder. Die Payload wird ausgeführt, sobald das Theme für die Vorschau gerendert wird.

5. Bereinigen

root@kitploit:~
podman-compose down -v

Erwartete Ausgabe

root@kitploit:~
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Referenzen


Haftungsausschluss

Dieses Repository dient ausschließlich zu Bildungszwecken und zur lokalen Ausnutzbarkeitsanalyse. Alle Tests wurden gegen eine selbst gehostete Container-Umgebung durchgeführt. Führen Sie diesen PoC nicht gegen Systeme aus, die Ihnen nicht gehören oder für die Sie keine ausdrückliche schriftliche Genehmigung zum Testen haben.

Tool herunterladen
RessourceLink
AdvisoryGHSA-9fx4-7cmj-47vg
Fix (Sandbox-Richtlinie)ThemeSandboxPolicy.php
Anfälliges Repositorymautic/mautic
Vollständige Analyse – Blogbeitragreturn-zero.dev/posts/cve-2026-9558