Bug #344
offen[Bugsink] DateMalformedStringException: Failed to parse time string (2026-1)) OR 208=(SELECT 208 FROM PG_SLEEP(15))---01-01) at position 6 ()): Unexpected char…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/f6c3dacd-c990-4cd8-ac21-5efb810e324b/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
DateMalformedStringException: Failed to parse time string (2026-1)) OR 208=(SELECT 208 FROM PG_SLEEP(15))---01-01) at position 6 ()): Unexpected char…
Automatisch erstellt durch n8n
KI-Analyse:
Als Senior TYPO3/PHP Entwickler analysiere ich diesen Fehler präzise:
1. Ursache identifizieren¶
Root Cause: SQL-Injectionsversuch über einen Datumsparameter.
Der Error zeigt einen manipulierten Request-Parameter, der als Datum geparst werden soll:
2026-1)) OR 208=(SELECT 208 FROM PG_SLEEP(15))---01-01
Dies ist ein klassischer SQL-Injections-Angriff:
-
2026-1))- Schließt bestehende SQL-Klammern vorzeitig -
OR 208=(SELECT 208 FROM PG_SLEEP(15))- Zeitbasierte SQL-Injection (PostgreSQL Sleep) -
---01-01- Versucht, den Rest des Datumsstrings zu "kommentieren"
2. Fix beschreiben (konkret)¶
Sofortige Maßnahmen:
-
Input-Validierung verschärfen: Nur erlaubte Zeichen für Datumsparameter zulassen (z.B. Regex:
/\d{4}-\d{2}-\d{2}/) - Prepared Statements nutzen: Statt direkter String-Interpolation in SQL-Queries
-
Parameter Binding: Verwendung von
->createNamedQuery()mit Parameter-Binding in TYPO3 - ** TYPO3 Query Builder:** Nutzen des TYPO3-eigenen Query Builders statt roher SQL-Strings
Code-Beispiel für die Fix:
// STATT:
$query = $connection->query("SELECT * FROM tx_mytable WHERE date = '" . $date . "'");
// NUTZEN:
$query = $connection->createNamedQuery("SELECT * FROM tx_mytable WHERE date = :date");
$query->setParameter('date', $date);
3. Betroffene TYPO3 Extension¶
Unspezifische Extension: Der Fehler zeigt, dass eine Extension (wahrscheinlich eine Custom Extension oder eine Third-Party Extension):
- Request-Parameter direkt als Datum nutzt
- Keine ausreichende Input-Validierung durchführt
- Ungebundene SQL-Queries verwendet
Mögliche Extensions:
- Extensions mit Datumsfilter-Funktionality
- Form-Extensions mit Datumsauswahl
- Calender/Event-Extensions
- Any Extension using
$GLOBALS['TYPO3_DB']->query()
4. Confidence: 95% ¶
Begründung:
- Der Error ist eindeutig ein SQL-Injections-Versuch
- Die Zeitstempel-Struktur (
PG_SLEEP) ist typisch für zeitbasierte Attacks - Der Fehler tritt in TYPO3-Kerndateien auf, die versuchen, den Parameter zu parsen
- Die Position 6 im Error weist auf die Klammer
)hin, die für die Injection genutzt wird
Empfehlung: Sofort Security-Audit der betroffenen Extension durchführen und alle User-Input-Parameter validieren.
Nichts anzuzeigen