Projekt

Allgemein

Profil

Aktionen

Bug #314

offen

[Bugsink] DateMalformedStringException: Failed to parse time string (2026-(select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)CHR(98)CHR(98),15) from dual)-01) at positio…

Von Bug Sink vor 27 Tagen hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
25.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/982b6b94-6083-4081-a9b2-13d0d3753172/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

DateMalformedStringException: Failed to parse time string (2026-(select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)CHR(98)CHR(98),15) from dual)-01) at positio…


Automatisch erstellt durch n8n

KI-Analyse:

Analyse

1. Ursache

Dies ist ein SQL-Injection-Angriffsversuch, der als DateMalformedStringException sichtbar wird. Der Angreifer injectet einen Oracle-typischen Blind-SQL-Payload (select DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15) from dual) in einen Datumsparameter. Das Format 2026-(payload)-01 versucht, das Date-Format YYYY-MM-DD vorzutäuschen, um Validierungschecks zu umgehen.

PHP's DateTime wirft die Exception bei Position 4 (- nach 2026), weil das kein gültiges Datum ist. Der Angriff wurde durch die Date-Parsing abgefangen, bevor er die Datenbank erreichte.

Der Eintrittspunkt liegt wahrscheinlich in einem Extension-Frontend (z.B. Formular, GET/POST-Parameter), das Datumswerte entgegennimmt und diese ungefiltert in Datenbankqueries verwendet.

2. Fix (konkret)

// Statt direktem Parsen von User-Input:
$date = DateTime::createFromFormat('Y-m-d', $userInput);
if (!$date) {
    throw new \InvalidArgumentException('Ungültiges Datumsformat');
}

// Zusätzlich: Prepared Statements für alle DB-Queries
$connection->executeQuery(
    'SELECT * FROM tx_extension_table WHERE date_field = :date',
    ['date' => $userInput],
    ['date' => \PDO::PARAM_STR]
);

Zusätzlich:

  • Input Validation mit Regex /^\d{4}-\d{2}-\d{2}$/ vor dem Parsen
  • htmlspecialchars() / Typkonvertierung für alle GET/POST-Parameter
  • TYPO3 Core auf aktuellste Version updaten

3. Betroffene Extension

Die Stacktrace-Frames zeigen primär typo3/cms-core (Middleware NormalizedParamsAttribute). Der Eintrittspunkt ist aber mit hoher Wahrscheinlichkeit eine Drittanbieter-Extension, die Datumsfelder aus User-Input verarbeitet (z.B. Event-Extension, Form-Extension, Repository mit Custom Query). Ohne Zugriff auf den vollständigen Stacktrace / Application-Code lässt sich die Extension nicht sekundensicher benennen – prüfe vendor/ nach nicht-core Extensions mit Datumsfeldern.

4. Confidence

  • Angriffserkennung: 98% — klarer SQLi-Pattern in Date-String
  • Betroffene Extension: 55% — ohne vollständigen Trace nicht eindeutig identifizierbar
  • Schadensereignis: 20% — Attacke wurde durch Date-Exception abgefangen, Datenbank wurde nicht kompromittiert

Empfehlung: HTTP-Request-Logs prüfen, um den genauen Endpoint / die Extension zu identifizieren. ModSecurity/WAF-Regeln für SQLi-Patterns ergänzen.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF