Bug #318
offen[Bugsink] DateMalformedStringException: Failed to parse time string (2026-010"XOR(01*if(now()=sysdate(),sleep(15),0))XOR"Z-01) at position 8 ("): Unexpected ch…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/8b7b92c2-2ba8-411f-87fa-3b3a09415f78/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
DateMalformedStringException: Failed to parse time string (2026-010"XOR(01*if(now()=sysdate(),sleep(15),0))XOR"Z-01) at position 8 ("): Unexpected ch…
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers:
1. Ursache identifizieren¶
Der Fehler wird durch eine SQL-Injection-Attacke verursacht. Ein Angreifer hat einen manipulierten Request gesendet, der einen ungewöhnlichen String im Parameter enthält:
2026-010"XOR(01*if(now()=sysdate(),sleep(15),0))XOR"Z-01
Dieser String wird versucht als Datum zu parsen, schlägt aber fehlern, da er ungültige Zeichen enthält (z.B. Anführungszeichen, SQL-Code). Die PHP-Funktion DateTime::createFromFormat (oder ähnlich) wirft hier einen DateMalformedStringException.
2. Fix beschreiben (konkret)¶
-
Input-Validierung: Alle Benutzereingaben müssen strikt validiert werden, bevor sie verarbeitet werden. Speziell für Datumsparameter:
- Nutzen Sie TYPO3's
DateTimeUtilityoderDateUtility, um Datumsangaben zu parsen. - Verwenden Sie
DateTime::createFromFormatmit einem definierten Format (z.B.Y-m-d), um unerwartete Zeichen zu verhindern. - Setzen Sie eine allow-list-basierte Validierung (z.B. Regex-Check für Datumsformate).
- Nutzen Sie TYPO3's
-
SQL-Injection-Schutz: Stellen Sie sicher, dass alle DB-Abfragen parameterisiert sind (z.B. mit
QueryBuilderoderprepared statements), um SQL-Injection zu verhindern. -
Fehlerbehandlung: Fangen Sie Ausnahmen wie
DateMalformedStringExceptionab und loggen Sie sie, um Angriffsversuche zu erkennen.
3. Betroffene TYPO3 Extension¶
Der Fehler ist nicht direkt einer spezifischen Extension zuzuordnen, da er im TYPO3 Core (Http-Middleware) auftritt. Die Wurzel liegt jedoch wahrscheinlich in:
- Einem Custom-Extension oder Plugin, das Benutzereingaben ohne Validierung an den Core weitergibt.
- Oder einem Core-Modul (z.B.
frontend), das Datum-Parameter aus dem Request entgegennimmt.
4. Confidence (0-100%)¶
95%
Die Error-Meldung und der Stack-Trace zeigen eindeutig eine fehlgeschlagene Datumsparsung aufgrund von manipulierten Eingaben. Die Präsenz von SQL-Injection-Mustern (sleep(15), XOR) bestätigt den Angriffsversuch. Die empfohlene Fix ist standard-mäßig wirksam.
Zusätzlicher Hinweis:
Überprüfen Sie die Logs auf ähnliche Angriffsversuche und prüfen Sie, ob Updates für betroffene Extensions/Core available sind, um known vulnerabilities zu schließen.
Nichts anzuzeigen