Projekt

Allgemein

Profil

Aktionen

Bug #174

offen

[Bugsink] TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException: The controller "Event` AND EXTRACTVALUE(4399,CONCAT(0x7e,((SELECT (ELT(4399=4399,1)))…

Von Bug Sink vor etwa 1 Monat hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
08.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/29cefa1e-04be-4f54-b476-21145e9221a9/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException: The controller "Event` AND EXTRACTVALUE(4399,CONCAT(0x7e,((SELECT (ELT(4399=4399,1)))…


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache identifizieren

Die Fehlermeldung ist kein normaler TYPO3-Fehler, sondern das Ergebnis eines aktiven SQL-Injection-Angriffs (SQLi) auf die TYPO3-Instanz.

Konkrete Analyse:

Der Controller-Name enthält einen MySQL Error-Based SQL Injection Payload:

Event` AND EXTRACTVALUE(4399,CONCAT(0x7e,((SELECT (ELT(4399=4399,1)))),0x7e))-- -

Dieser Payload nutzt die MySQL-Funktionen EXTRACTVALUE() und ELT() — eine bekannte Technik zur Datenextraktion über Datenbankfehlermeldungen. Der Angreifer versucht, über den Extbase-Controller-Parameter (tx_calendarlist[controller]=...) schadhafte SQL-Code in das System einzuschleusen.

Warum greift der Fehler?

  • TYPO3 Extbase whitelisted Controller in ext_localconf.php via ExtensionUtility::configurePlugin()
  • Der Angreifer übermittelt einen Controller-Namen, der nicht in der Whitelist steht
  • Extbase wirft InvalidControllerNameException und gibt dabei den ungefilterten Angriffspayload in der Fehlermeldung zurück
  • Dies ist ein Reflected Information Disclosure — der Angreifer sieht, dass der Parameter ungefiltert durchgereicht wird

Eigentliche Schwachstelle: Die Extension Calendarlist validiert den controller-Request-Parameter nicht ausreichend, bevor er an Extbase übergeben wird. Zusätzlich gibt TYPO3 die unsanitiserte Eingabe in der Exception-Meldung preis.


2. Fix (konkret)

Kurzfristig (Sicherheits-Stopgap):

  • TYPO3 Install Tool öffnen → „Clean up" → „Abstract database metadata" ausführen
  • Alle Caches leeren (Frontend + Backend)
  • In der .htaccess oder Nginx-Konfiguration den Zugriff auf verdächtige Parameter blockieren

Mittelfristig (Extension-Fix):

In der Datei ext_localconf.php der Extension Calendarlist muss die Plugin-Konfiguration strenger gemacht werden:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Calendarlist',
    'Calendarlist',
    [
        'Event' => 'list, show', // Nur explizit erlaubte Aktionen
    ],
    ['Event' => 'list, show'] // Nicht-flüchtige Aktionen
);

Langfristig (Core-Sicherheit):

  • TYPO3 Version aktualisieren auf die neueste stabile Version (mind. TYPO3 v12 LTS oder neuer)
  • Schutz gegen Error-Based SQLi: TYPO3 Core ab Version 12 hat verbesserte Eingabevalidierung — sicherstellen, dass filterArguments in TypoScript korrekt konfiguriert ist:
plugin.tx_calendarlist {
    settings {
        filterArguments {
            controller {
                filter = \TYPO3\CMS\Extbase\Utility\FilterUtility::filterGivenArray
            }
        }
    }
}
  • Zusätzlich: Ein Web Application Firewall (WAF) wie ModSecurity oder Cloudflare WAF einrichten, um SQLi-Payloads bereits auf Netzwerkebene zu blockieren

3. Betroffene TYPO3 Extension

Calendarlist — Dies ist die betroffene TYPO3 Extension. Der Plugin-Name lautet Calendarlist, und der Controller Event ist der Angriffsvektor.


4. Confidence

95%

Begründung:

  • Der SQL-Injection-Payload (EXTRACTVALUE, ELT, CONCAT(0x7e,...)) ist ein eindeutig erkennbares, dokumentiertes Angriffsmuster
  • Die InvalidControllerNameException wird exakt dann ausgelöst, wenn ein Controller-Name nicht in der Plugin-Whitelist steht
  • Die Kombination aus Fehlermeldung + Payload + Extbase-Architektur macht die Diagnose hochgradig sicher
  • Die einzige geringe Unsicherheit betrifft, ob der Angreifer tatsächlich Daten exfiltrieren konnte (nur anhand des Logs nicht beurteilbar), aber der Angriffsversuch ist eindeutig

⚠️ Dringender Hinweis:

Dies ist ein Aktiver Angriff auf die Instanz. Es wird empfohlen, sofort zu prüfen:

  1. Ob in der Datenbank unbekannte Benutzer/Einträge existieren (SELECT * FROM fe_users, SELECT * FROM sys_log)
  2. Ob die index.php oder .htaccess manipuliert wurde
  3. Ob unbekannte Extensions oder Dateien in der Dateisystemstruktur existieren
  4. Einen Security-Scan mit Tools wie typo3sniff oder RIPS durchzuführen

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF