Bug #268
offen[Bugsink] ErrorException: Warning: filesize(): stat failed for /srv/www/www.verl.de/pages/public/uploads/tx_powermail/1ifupoaxz___or_681__select_681_from_pg_sl…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/a1e89e0d-7eb8-4e9e-9302-0f8824351c59/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
ErrorException: Warning: filesize(): stat failed for /srv/www/www.verl.de/pages/public/uploads/tx_powermail/1ifupoaxz___or_681__select_681_from_pg_sl…
Automatisch erstellt durch n8n
KI-Analyse:
Analyse¶
1. Ursache¶
Primär: Ein SQL-Injection-Versuch wurde über einen Datei-Upload kanalisiert. Der Dateiname enthält einen klassischen Blind-SQLi-Payload (select 681 from pg_sleep 15 – PostgreSQL pg_sleep Delaying Technique).
Sekundär: TYPO3/powermail hat versucht, die hochgeladene Datei zu verarbeiten (filesize()), aber die Datei existierte im Dateisystem nicht (stat failed). Das passiert, wenn:
- Der Upload wegen des verdächtigen Dateinamens abgelehnt/blockiert wurde, aber ein nachgelagerter Hook/Signal trotzdem die Metadaten lesen will, oder
- Der temporäre Upload-Pfad nicht korrekt aufgelöst wurde (z.B. Dateiname zu lang/mit Sonderzeichen).
Die Kombination aus tx_powermail + pg_sleep im Dateinamen deutet auf einen automatisierten Angriff hin, der Formular-Uploads als Einfallstor nutzt.
2. Fix (konkret)¶
Sofort (Security):
// Jeden filesize()-Aufruf guardsen:
if (is_file($path) && is_uploaded_file($path)) {
$size = filesize($path);
}
Powermail-Konfiguration:
- Dateiname randomisieren (nicht den Originalnamen behalten)
- Upload-Erweiterung strikt whitelisten (keine
.php,.phtml,.sql) -
uploadFolderaußerhalb des Webroots oder mit.htaccess/nginx-Block (php_flag engine off)
TYPO3 Core:
- Prüfen, ob in
typo3/sysext/core/Classes/Resource/Storage/AbstractFileCollection.phpoder ähnlichfilesize()ohne Existenzprüfung aufgerufen wird (betrifftFile-Wrapper) -
verifierfür Uploads erhöhen (Dateiname-Sanitization viaGeneralUtility::sanitizeFileName)
Monitoring:
- Logs nach weiteren Aufrufen dieses Musters durchsuchen (
pg_sleep,select,union) - IP-Blocking bei Wiederholungstaten
3. Betroffene Extension¶
powermail (erkennbar am Pfad tx_powermail). Die Datei lag im Upload-Ordner der Extension.
4. Confidence¶
90% – Der Dateiname ist eindeutig ein Angriffsversuch (nicht nur ein korrupter Upload), und tx_powermail ist die betroffene Komponente. Restrisiko: Es könnte ein False Positive sein, wenn ein interner Prozess die Datei löscht, bevor filesize() greift – aber der Payload im Namen macht einen Angriff sehr wahrscheinlich.
Nichts anzuzeigen