Bug #256
offen[Bugsink] ErrorException: Warning: file_get_contents(https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=%28select%280%29from%28select%28sleep…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/b9aee83c-d1f6-473a-8267-062ebf448bc6/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
ErrorException: Warning: file_get_contents(https://verl.ratsinfomanagement.net/webservice/portal/getSearch?type=%28select%280%29from%28select%28sleep…
Automatisch erstellt durch n8n
KI-Analyse:
Kurz: Das ist kein TYPO3-Core-Fehler, sondern ein fehlgeschlagener externer Webservice-Aufruf einer TYPO3-Extension.
1. Ursache identifizieren¶
- Die Extension ruft per
file_get_contents()auf:
https://verl.ratsinfomanagement.net/webservice/portal/getSearch - Im Parameter
typesteckt ein URL-encoded SQL-Injection-/Sleep-Payload:
select(... sleep(15) ...) - Der externe Webservice antwortet darauf mit HTTP 500 Internal Server Error.
- TYPO3 wandelt das daraus entstehende PHP-Warning in eine ErrorException um.
- Die Stack-Frames zeigen nur die TYPO3-Request-Pipeline, nicht die eigentliche Fehlerquelle.
2. Fix beschreiben (konkret)¶
-
Extension-Konfiguration prüfen
-
typeauf einen erlaubten, sauberen Wert setzen - den SQLi-Payload entfernen
-
-
maxOccurs=-1korrigieren- entweder auf einen gültigen positiven Wert setzen
- oder den Parameter weglassen
-
Extension aktualisieren
- auf eine Version, die Eingaben validiert und HTTP-Fehler sauber behandelt
-
Falls
type/termsuserkontrolliert sind:- Whitelist/Validierung einbauen
- keine rohen Userinputs an den Webservice weitergeben
-
Fehlerbehandlung verbessern
- Timeout setzen
- Fehler loggen
- keine rohen Warnings in die Oberfläche werfen
-
Logs/WAF prüfen
- falls der Payload von außen kam: Angriff versuchen blocken
3. Betroffene TYPO3 Extension¶
-
Sehr wahrscheinlich:
tx_ratsinforelay(Ratsinfo Relay) - Alternative, falls nur der Basis-Client installiert ist:
tx_ratsinfo
4. Confidence¶
- 85%
Wenn du möchtest, kann ich dir auch sagen, wie du die Extension im Projekt sicher identifizierst — z. B. über composer.json, ext_emconf.php oder die Extension-Liste.
Nichts anzuzeigen