Bug #174
offen[Bugsink] TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException: The controller "Event` AND EXTRACTVALUE(4399,CONCAT(0x7e,((SELECT (ELT(4399=4399,1)))…
0%
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.phpviaExtensionUtility::configurePlugin() - Der Angreifer übermittelt einen Controller-Namen, der nicht in der Whitelist steht
- Extbase wirft
InvalidControllerNameExceptionund 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
.htaccessoder 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
filterArgumentsin 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
InvalidControllerNameExceptionwird 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:
- Ob in der Datenbank unbekannte Benutzer/Einträge existieren (
SELECT * FROM fe_users,SELECT * FROM sys_log) - Ob die
index.phpoder.htaccessmanipuliert wurde - Ob unbekannte Extensions oder Dateien in der Dateisystemstruktur existieren
- Einen Security-Scan mit Tools wie
typo3sniffoderRIPSdurchzuführen
Nichts anzuzeigen