Projekt

Allgemein

Profil

Aktionen

Bug #303

offen

[Bugsink] TYPO3\CMS\Extbase\Persistence\Generic\Storage\Exception\SqlErrorException: An exception occurred while executing a query: Incorrect DATE value: '2026…

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/e00451c9-5146-40b3-b71e-2e04c9b9b170/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

TYPO3\CMS\Extbase\Persistence\Generic\Storage\Exception\SqlErrorException: An exception occurred while executing a query: Incorrect DATE value: '2026…


Automatisch erstellt durch n8n

KI-Analyse:

Als Senior TYPO3/PHP Entwickler analysiere ich diesen Fehler präzise.

1. Ursache identifizieren

Die Ursache ist eine SQL-Injection. Der Wert '2026-RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'-1'||DBMS_PIPE' ist kein gültiges Datum, sondern ein schädlicher SQL-Code, der versucht, eine Datenbank-Pipe (Oracle DBMS_PIPE) aufzurufen. Dies ist ein typischer Versuch, die Datenbank zu kompromittieren.

Der Fehler wird ausgelöst, weil dieser schädliche String als Datum in eine SQL-Abfrage eingefügt wird, was zu einem Syntaxfehler (mysqli_sql_exception) führt, da MySQL das Datum nicht parsen kann.

2. Fix beschreiben (konkret)

Sofortmaßnahme (Notbehelf):

  • Identifizieren Sie die Quelle des schädlichen Inputs (z.B. URL-Parameter, Formulardaten).
  • Deaktivieren Sie die betroffene Funktionalität oder den betroffenen Endpunkt, bis die Sicherheitslücke geschlossen ist.

Langfristige Fix (Sicherheitsupdate):
Der eigentliche Fix muss in der betroffenen Extension durchgeführt werden. Die grundlegenden Schritte sind:

  1. Input-Validierung und -Säuberung: Jede Eingabe, die in eine Datenbankabfrage kommt, muss rigoros validiert und gesäubert werden. Verwenden Sie TYPO3-spezifische Methoden wie \TYPO3Fluid\Fluid\Core\ViewHelper\ArgumentProcessor oder die \TYPO3\Cms\Core\Utility\GeneralUtility-Klasse.
    • Beispiel für eine sichere Abfrage:
      // UNSICHER (SQL Injection)
      $query = "SELECT * FROM tx_myext_table WHERE date = '" . $userInput . "'";
      
      // SICHER (mit Prepared Statements)
      $statement = $connection->prepare("SELECT * FROM tx_myext_table WHERE date = ?");
      $statement->execute([$userInput]);
      
  2. Verwendung von Query Builder: Nutzen Sie den TYPO3 Query Builder, der Prepared Statements automatisch verwendet.
    // SICHER
    $rows = \TYPO3\Cms\Core\Database\ConnectionPool::getConnectionForTable('tx_myext_table')
        ->select('tx_myext_table', '*')
        ->where('date = :date')
        ->setParameters([':date' => $userInput])
        ->execute()
        ->fetchAll();
    
  3. Typen-Check: Prüfen Sie den Typ der Variable strikt (z.B. intval() für ganze Zahlen, DateTime-Objekte für Datumsangaben).

3. Betroffene TYPO3 Extension nennen

Der Fehler stammt nicht direkt aus dem TYPO3-Kern (vendor/typo3/cms-core), sondern aus einer kundenspezifischen Extension. Die Pfadangaben in den Stacktraces zeigen, dass der Fehler in der Anwendungslogik (/public/index.php) beginnt, bevor er in den Kern gelangt.

Die betroffene Extension muss anhand des fehlerhaften SQL-Statements identifiziert werden. Der String RECEIVE_MESSAGE und DBMS_PIPE deuten auf eine Extension hin, die:

  • either eine Oracle-Datenbank-Anbindung hat (sehr ungewöhnlich für TYPO3),
  • oder eine Funktionalität namens RECEIVE_MESSAGE implementiert, die anfällig für SQL-Injection ist.

Konkreter Hinweis: Durchsuchen Sie das Projekt nach dem String RECEIVE_MESSAGE oder DBMS_PIPE, um die betroffene Extension zu finden.

4. Confidence (0-100%)

Confidence: 95%

Begründung:

  • 95%: Der Error ist eindeutig eine SQL-Injection. Die Struktur des schadhaften Strings (CHR(98)||CHR(98)||CHR(98), DBMS_PIPE) ist ein klassischer Angriffsmuster. Die Ursache liegt in einer fehlenden Validierung einer Benutzereingabe, die in eine SQL-Abfrage eingebaut wird.
  • 5% Abzug: Es ist minimal möglich, dass ein ungewöhnlicher, aber legaler Datensatz mit diesem speziellen Zeichenfolge existiert, der versehentlich als Datum interpretiert wird. Dies ist jedoch extrem unwahrscheinlich, da es sich um offensichtlichen schädlichen Code handelt.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF