Projekt

Allgemein

Profil

Aktionen

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…

Von Bug Sink vor etwa 1 Monat hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
20.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

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)
  • uploadFolder auß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.php oder ähnlich filesize() ohne Existenzprüfung aufgerufen wird (betrifft File-Wrapper)
  • verifier für Uploads erhöhen (Dateiname-Sanitization via GeneralUtility::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

Aktionen

Auch abrufbar als: Atom PDF