Bug #302
offen[Bugsink] TYPO3\CMS\Extbase\Persistence\Generic\Storage\Exception\SqlErrorException: An exception occurred while executing a query: Incorrect DATE value: '2026…
0%
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-dprü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