Bug #176
offen[Bugsink] TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException: The controller "Event%" AND EXTRACTVALUE(5078,CONCAT(0x7e,((SELECT (ELT(5078=5078,1))…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/a98784ad-8c57-400c-89c3-adecd3ac83a1/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException: The controller "Event%" AND EXTRACTVALUE(5078,CONCAT(0x7e,((SELECT (ELT(5078=5078,1))…
Automatisch erstellt durch n8n
KI-Analyse:
1. Ursache identifiziert
Der Fehler wird ausgelöst, weil das Plugin „Calendarlist“ (Extension‑Key z. B. tx_cal/cal) bei Aufruf einer Action‑URL einen Controller‑Namen erhält, der nicht den zulässigen Namens‑Pattern erfüllt.
Im Stack‑Trace ist zu sehen, dass der angeforderte Controller name „Event%“ AND EXTRACTVALUE(5078,CONCAT(0x7e,((SELECT (ELT(5078=5078,1)))),0x7e))-- -“ ist – ein klarer Hinweis auf einen SQL‑Injection‑Versuch, der über das Routing/Parameter‑Parsing in den Controller‑Namen eingesprüht wurde.
Die Ursache liegt in der Plugin‑Registrierung in ext_localconf.php (bzw. config.php der Extension). Dort wird das Plugin wahrscheinlich mit einer unzureichenden oder fehlerhaften Signatur definiert, sodass Extbase den Controller‑Namen nicht korrekt validiert und die Exception wirft.
2. Fix beschrieben (konkret)
| Schritt | Maßnahme |
|---|---|
| a) Plugin‑Signature prüfen | Öffne ext_localconf.php (oder die Datei, in der ExtensionUtility::registerPlugin() verwendet wird). Stelle sicher, dass die Angabe für den Controller‑Namen exakt mit dem tatsächlichen Controller übereinstimmt, z. B.: 'Controller' => 'EventController' (ohne % oder Sonderzeichen). |
| b) Wildcard‑ oder Regex‑Muster entfernen | Falls dort ein Muster wie Event* oder ein regulärer Ausdruck verwendet wird, dieser muss auf das konkrete Klassennamen‑Muster reduziert werden (EventController). |
| c) Eingabe‑Validierung | Prüfe, ob über GET/POST‑Parameter (z. B. tx_cal_plugin[controller]) ein Controller‑Name übergeben wird. Füge eine Whitelist‑Prüfung ein (in_array($controller, $allowedControllers)) oder setze das Routing‑Constraint‑Array (ExtensionUtility::configurePlugin(..., ['controller' => 'Event'])) so, dass nur erlaubte Namen zulässig sind. |
| d) SQL‑Injection abwehren | Da der Controller‑Name aus einer unsanitized Request‑Variable stammt, muss das Routing‑Parsing selbst bereits die Eingabe escaped/validiert. In TYPO3 geschieht das über das Router‑System; stelle sicher, dass keine rohen Query‑Parameter in den Plugin‑Aufruf gelangen. |
| e) Cache leeren | Nachdem die Plugin‑Registrierung angepasst wurde, den TYPO3‑Cache (Backend‑Cache, Frontend‑Cache) leeren, damit die neue Konfiguration wirksam wird. |
| f) Testen | Rufe die Seite erneut auf (ohne die manipulierten Parameter). Der Exception sollte nicht mehr auftreten; stattdessen wird die gewünschte Kalender‑Action ausgeführt. |
3. Betroffene TYPO3 Extension
Die Fehlermeldung nennt das Plugin „Calendarlist“. Die zugehörige Extension ist in der Regel die Kalender‑Extension, z. B. tx_cal (oder ein abgeleitetes Fork‑Projekt wie vhs_cal, ttc_calendar). Die Extension liefert das Plugin, das den Controller‑Namen prüft.
4. Confidence (0‑100 %)
95 % – Die Analyse basiert auf den eindeutigen Hinweisen im Stack‑Trace (InvalidControllerNameException, Plugin‑Name, Verweis auf ext_localconf.php) und dem offensichtlichen SQL‑Injection‑Muster im Controller‑Namen. Ein anderer Grund (z. B. ein anderer Plugin‑Fehler) wäre weniger wahrscheinlich, weil die Exception exakt aus der Plugin‑Validierung stammt.
Nichts anzuzeigen