Bug #324
offen[Bugsink] DateMalformedStringException: Failed to parse time string (-1 OR 5*5=26-01-01) at position 6 (5): Unexpected character
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/d9dfd066-b879-4797-8625-8ae3695cbafe/event/last/
Typ: NEW issue
Projekt: www-rietberg-de
Bugsink Alert
DateMalformedStringException: Failed to parse time string (-1 OR 5*5=26-01-01) at position 6 (5): Unexpected character
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers¶
1. Ursache identifizieren¶
Der Fehler DateMalformedStringException: Failed to parse time string (-1 OR 5*5=26-01-01) entsteht, weil PHP versucht, den String -1 OR 5*5=26-01-01 als Datum zu parsen — was unmöglich ist, da dies kein gültiges Datumsformat darstellt.
Tiefere Ursache:
Der Stack Trace zeigt, dass der Fehler in der VerifyHostHeader::process()-Middleware (Zeile 55) ausgelöst wird. Der manipulierte String (-1 OR 5*5=26-01-01) ist offensichtlich ein SQL-Injection-Versuch:
-
5*5=25, also5*5=26ergibtFALSE -
-01-01simuliert ein Datumsformat - Der gesamte String zielt darauf ab, eine Bedingung zu manipulieren und gleichzeitig als Datum getarnt zu sein
Der HTTP_HOST-Header oder ein Datenbank-Feld (wahrscheinlich sys_domain oder site-Konfiguration) enthält diesen manipulierten Wert. TYPO3 versucht aus dem Host-Header eine Site-Konfiguration abzuleiten und stößt dabei auf einen Datums-Parser, der den String nicht verarbeiten kann.
2. Fix (konkret)¶
-
Sofortiger Schutz:
- Den
HTTP_HOST-Header auf ungültige/manuelipulierte Werte prüfen (z.B. durch Regex-Validierung inconfig/LOCALCONF.phpoder.htaccess)
- Den
-
Datenbank bereinigen:
- Suche in allen Datenbanktabellen nach dem String
-1 OR 5*5=26-01-01:SELECT * FROM sys_domain WHERE domainName LIKE '%OR 5*5=%'; SELECT * FROM pages WHERE ... LIKE '%OR 5*5=%'; SELECT * FROM sys_template WHERE ... LIKE '%OR 5*5=%'; - Den fehlerhaften Eintrag umgehend löschen oder bereinigen
- Suche in allen Datenbanktabellen nach dem String
-
Site-Konfiguration prüfen:
- Unter
config/sites/dieconfig.yamlaller Sites überprüfen — insbesonderebase,baseVariantsund Datums-Felder - Sicherstellen, dass kein manipulierter Host-Wert hinterlegt ist
- Unter
-
Middleware absichern:
-
VerifyHostHeader-Middleware kann mit einem Whitelist-Ansatz erweitert werden, um nur bekannte Hostnamen zu akzeptieren - Alternativ: TYPO3's
trustedHostsPatternin$GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern']konfigurieren
-
-
Sicherheitsanalyse:
- Prüfen, wie der manipulierte Wert in die Datenbank gelangt ist (Security-Lücke in einer Extension? Unsicheres Backend-Login?)
- Logs des Webservers und der Datenbank auf weitere Attacke-Versuche prüfen
3. Betroffene TYPO3 Extension¶
Der Stack Trace zeigt ausschließlich TYPO3 Core-Komponenten (cms-core). Der direkte Fehler liegt in:
-
TYPO3\CMS\Core\Middleware\VerifyHostHeader(Core)
Die betroffene Quelle des manipulierten Werts ist höchstwahrscheinlich:
-
sys_domain-Tabelle odersite-Konfiguration (config/sites/<site>/config.yaml) - Eventuell eine benutzerdefinierte Drittanbieter-Extension, die den Host-Header oder Domain-Eintrag unverifiziert in die Datenbank schreibt
4. Confidence¶
75% — Der Fehlermuster und der Stack Trace sind eindeutig. Die Identifizierung des Strings als SQL-Injection-Versuch und des HTTP_HOST-Headers als Vektor ist hochwahrscheinlich, aber ohne Zugriff auf die Datenbank und die vollständige site-Konfiguration kann die exakte Einfallquelle der manipulierte String nicht zu 100% bestimmt werden. Es könnte auch ein fehlerhaftes Datumsfeld in einer Custom-Extension sein, das den String enthält.
Zusammenfassung: Es liegt ein manipulierter HTTP_HOST-Header oder Datenbank-Eintrag vor, der den String -1 OR 5*5=26-01-01 (SQL-Injection-Versuch) enthält. TYPO3 versucht diesen als Datum zu parsen und scheitert. Sofort die Datenbank und site-Konfiguration auf diesen Wert prüfen und den Host-Header über trustedHostsPattern absichern.
Nichts anzuzeigen