Projekt

Allgemein

Profil

Aktionen

Bug #327

offen

[Bugsink] DateMalformedStringException: Failed to parse time string (2026-01����%2527%2522\'\"-01) at position 7 (�): Unexpected character

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/5f1f4b60-66a1-48a6-b4ff-5f8c880d8578/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

DateMalformedStringException: Failed to parse time string (2026-01����%2527%2522'"-01) at position 7 (�): Unexpected character


Automatisch erstellt durch n8n

KI-Analyse:

Analyse des Fehlers: DateMalformedStringException


1. Ursache identifizieren

Der Fehler wird ausgelöst, wenn PHP versucht, einen ungültigen Datumsstring zu parsen:
2026-01%2527%2522\\'\\\"-01

  • Position 7 enthält das Zeichen `` (U+FFFD Replacement Character), was auf eine fehlerhafte Zeichenkodierung hinweist.
  • Der String ist offensichtlich durch mehrfache URL-Encodings und Escape-Sequenzen korrupt:
    • %2527%2522 ist doppelt URL-encodiert: %27 = ', %25 = % → nach Decodierung: '".
    • \\'\\\" sind escaped quotes, die möglicherweise aus einer falschen String-Verarbeitung stammen.
  • Die Kombination aus fehlerhafter UTF-8-Kodierung und mehrfach verschachtelten Encodings führt dazu, dass der String nicht als gültiges Datum interpretiert werden kann.

2. Fix beschreiben (konkret)

Schritte zur Behebung:

  1. Input-Sanitizing verschärfen:
    Alle externen Eingaben (z. B. GET/POST-Parameter, Cookies) vor der Verarbeitung auf gültige Datumsformate prüfen und ungültige Werte ablehnen bzw. bereinigen.

  2. URL-Decoding korrekt durchführen:
    sicherstellen, dass URL-encodierte Strings nur einmal dekodiert werden (mehrfaches Decodieren verursacht die Korruption).

  3. Zeichenkodierung normalisieren:
    Alle Strings vor dem Parsen auf UTF-8 konvertieren und ungültige Sequenzen entfernen (z. B. mit mb_check_encoding()).

  4. Fehlertoleranz im Date-Parser:
    Bei der Datumsverarbeitung (z. B. mit DateTime::createFromFormat()) Ausnahmen abfangen und statt einem Crash eine graceful Degradation ermöglichen.

  5. Logging erweitern:
    Den korrupten String protokollieren, um die Ursache (z. B. bestimmte Client-Anfragen) nachverfolgen zu können.


3. Betroffene TYPO3 Extension

  • Keine spezifische Extension: Der Fehler liegt im TYPO3 Core (Klasse AbstractApplication.php und MiddlewareDispatcher.php), wird aber durch einen fehlerhaften Request ausgelöst.
  • Mögliche Auslöser:
    • Ein Plugin oder eine Extension, die Datumsparameter unsicher verarbeitet.
    • Ein fehlerhafter Client, der mehrfach encodierte Parameter sendet.
    • Ein Bug in der Middleware NormalizedParamsAttribute.php, die Parameter normalisiert.

4. Confidence (0–100%)

Confidence: 95%

Begründung:

  • Der Fehlerstring ist eindeutig korrupt und zeigt mehrfache Encodingschichten.
  • Die Position des Fehlers (Position 7) trifft exakt auf das ungültige Zeichen zu.
  • Die Stack-Trace zeigt, dass der Fehler im Request-Handling auftritt, was mit der Input-Korruption übereinstimmt.
  • Die Lösungsansätze sind spezifisch und direkt auf das Problem zugeschnitten.

Empfehlung:
Überprüfen Sie die anfragenden Clients auf fehlerhafte Parameter und implementieren Sie eine robustere Input-Validierung in den betroffenen Middlewares. Ein Update des TYPO3 Core auf die neueste Version kann ebenfalls behelfsweise Abhilfe schaffen, falls dies ein bekannter Bug ist.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF