Projekt

Allgemein

Profil

Aktionen

Bug #313

offen

[Bugsink] DateMalformedStringException: Failed to parse time string (2026-01'DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)CHR(98)CHR(98),15)'-01) at position 7 ('): Unexpe…

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/4349050d-f9a2-4f63-b2fa-38fbd361a835/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

DateMalformedStringException: Failed to parse time string (2026-01'DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)CHR(98)CHR(98),15)'-01) at position 7 ('): Unexpe…


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache

Es handelt sich um einen SQL-Injection-Angriff via Oracle-DBMS-Pipe-Technik (DBMS_PIPE.RECEIVE_MESSAGE). Der Angreifer sendet einen manipulierten Parameter, der als Datum interpretiert werden soll:

(2026-01'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'-01)

Der Wert wird an einer Stelle in den Request-Parametern entgegengenommen und ohne Validierung/Parametrisierung direkt in einen Datums-Kontext eingespeist. PHP wirft DateMalformedStringException, weil an Position 7 das ' nicht als Datum erkannt wird — der Angriff wird also bevor er die Datenbank erreicht durch die Datums-Parse-Schicht abgefangen.

2. Fix (konkret)

  • Alle Datums-Parameter strikt validieren vor der Weiterverarbeitung:
    $date = \DateTime::createFromFormat('Y-m-d', $input);
    if (!$date) { throw new \InvalidArgumentException('Invalid date'); }
    
  • Prepared Statements verwenden (Doctrine DBAL), nie String-Konkatenation für SQL.
  • Input-Sanitization im Controller/Request-Handler: Typ-Casting auf DateTimeImmutable, Regex-Check ^\d{4}-\d{2}-\d{2}$.
  • Ggf. WAF-Regel für DBMS_PIPE, CHR(, UNION SELECT-Muster konfigurieren.

3. Betroffene Extension

Aus dem Stack allein lässt sich die Extension nicht eindeutig benennen — der Stack zeigt nur TYPO3-Core-Middleware. Die betroffene Stelle ist der Custom-Code (Extension), der den unsauberen Request-Parameter als Datum entgegennimmt und in eine Query einbaut. Bitte Stacktrace ohne vendor/typo3-Frames posten (eigene /Classes/-Pfade), dann lässt sich die Extension namentlich identifizieren.

4. Confidence

95% — Das Muster DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15) ist ein klassisches Oracle-Blind-SQLi-Payload-Signal. Der DateMalformedStringException ist lediglich die Folge-Seite, weil PHP den String vorher parsen will.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF