Projekt

Allgemein

Profil

Aktionen

Bug #302

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/11466bc9-9b46-4124-a4ea-5ffbf251fd41/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:

1) Ursache

Das ist ein klarer SQL-Injection-Versuch über einen Date-Parameter:

'2026-RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)-1*DBMS_PIPE'
  • Das Präfix 2026- versucht, einen valide aussehenden Date-Wert zu vortäuschen.
  • Der Rest ist Oracle/PLSQL-Style-Payload (DBMS_PIPE, RECEIVE_MESSAGE, CHR). MySQL kann damit nichts anfangen → Incorrect DATE value → Fehler wird sichtbar.
  • Der Wert wird roh in eine SQL-Query interpoliert (wahrscheinlich WHERE date_field = ? mit ungefiltertem User-Input).
  • Der Stacktrace zeigt nur TYPO3 Core Middleware, weil der Fehler erst in der späteren Business-Logik/Repository-Schicht einer Extension auftritt – der Trace bricht an der Stelle ab, wo der Query-Builder/PDO wirft.

2) Fix (konkret)

// ❌ NIEMALS so:
$row = $GLOBALS['TYPO3_DB']->fetchSingle("SELECT * FROM tx_xyz WHERE date = '$date'");

// ✅ So:
$date = preg_replace('/[^0-9\-]/', '', $date);          // strikt Y-m-d
if (!DateTime::createFromFormat('Y-m-d', $date)) {
    throw new \InvalidArgumentException('Ungültiges Datum');
}
$row = $repo->findByDate($date);                        // Extbase/QueryBuilder

Zusätzlich:

  • Alle Eingaben auf Y-m-d prüfen (filter_var + Regex).
  • Prepared Statements / QueryBuilder nutzen, nie String-Interpolation.
  • Relevante Input-Quellen checken: GET, POST, COOKIE, HTTP_REFERER, Header.
  • Fail2ban / WAF-Regel für die injizierende IP.

3) Betroffene TYPO3 Extension

Nicht eindeutig aus dem Stacktrace identifizierbar. Der Trace endet in der Core-Middleware – die eigentliche Injecting-Extension fehlt im Report (vermutlich Custom-Extension oder Drittanbieter-Extension mit eigenem SQL).
→ Suche im Projekt nach: mysqli_query, query(), SELECT .* DATE, RECEIVE_MESSAGE, DBMS_PIPE in Extbase-Repositorys / Custom-SQL.

4) Confidence

90 % – SQLi-Diagnose ist sicher. Die genaue Extension-Lokalisation ist ohne vollständigen Trace / Query-Log mangels Daten unsicher (-10 %).

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF