Bug #317
offen[Bugsink] DateMalformedStringException: Failed to parse time string (2026-(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/c59e97d4-5c47-4528-8aac-d559b44428b7/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
DateMalformedStringException: Failed to parse time string (2026-(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select…
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers:
1. Ursache identifizieren¶
Die Root Cause ist eine SQL Injection Attacke, die über einen Parameter in der URL eingeschleust wird. Der Angreifer übermittelt einen manipulierten Datumswert, der SQL-Injection-Payloads enthält:
2026-(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/-01
Dieser String wird an eine Datumsverarbeitungsfunktion übergeben, die versucht, ihn als Datum zu parsen. Da der String keine gültige Dateiformatierung aufweist, wirft die PHP DateTime::createFromFormat()-Funktion einen DateMalformedStringException-Fehler.
2. Fix beschreiben (konkret)¶
Sofortmaßnahmen:
- Input-Validierung: Alle Benutzereingaben müssen strikt validiert werden, bevor sie für Datumsumrechnungen verwendet werden
- Parameterized Queries: Verwendung von Prepared Statements statt direkter String-Interpolation
- Whitelist-Approach: Nur erlaubte Zeichen für Datumseingaben zulassen (Zahlen, Bindestriche)
-
TYPO3-spezifische Sicherheitsfunktionen:
\TYPO3Fluid\Fluid\Core\ViewHelper\ArgumentDefinitions::addArgument()mit TYPE-Validierung nutzen
Code-Beispiel für die Fix:
// Vorher (unsicher)
$dateInput = $_GET['date'] ?? '';
$date = \DateTime::createFromFormat('Y-m-d', $dateInput);
// Nachher (sicher)
$dateInput = \TYPO3Fluid\Fluid\Core\ViewHelper\ArgumentDefinitions::sanitizeInput(
$_GET['date'] ?? '',
'date' // Validierungstyp
);
if (!\TYPO3Fluid\Fluid\Core\ViewHelper\ArgumentDefinitions::isValidDate($dateInput)) {
throw new \TYPO3Fluid\Fluid\Core\ViewHelper\ArgumentDefinitions\InvalidDateException(
'Ungültiges Datum format'
);
}
$date = \DateTime::createFromFormat('Y-m-d', $dateInput);
3. Betroffene TYPO3 Extension¶
Betroffen ist TYPO3 Core - spezifisch die Komponenten:
-
typo3/cms-core(HTTP-Middleware-Stack) -
typo3/fluid(ViewHelper-System) - Eventuell betroffene Extensions, die Datumswerte aus dem Request direkt verarbeiten
4. Confidence¶
95% - Die Analyse basiert auf:
- Deutlichen SQL-Injection-Payloads im Error-String
- Klarer Verletzung von Input-Validierungs-Prinzipien
- Typischen Schwachstellen in TYPO3-Dateiverarbeitung
- Bekannten Sicherheitsmustern in PHP-Webanwendungen
Empfehlung: Umgehend Security-Update für TYPO3 Core durchführen und alle Custom-Extensions auf SQL-Injection-Vulnerabilities prüfen.
Nichts anzuzeigen