Projekt

Allgemein

Profil

Aktionen

Bug #269

offen

[Bugsink] ErrorException: Warning: filesize(): stat failed for /srv/www/www.verl.de/pages/public/uploads/tx_powermail/181lyetdi____or_85__select_85_from_pg_sle…

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/5b955b03-af50-48b0-bde4-f0670c4bd12a/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/181lyetdi____or_85__select_85_from_pg_sle…


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache identifizieren
Der filesize()‑Aufruf schlägt fehl, weil der übergebene Pfad

/srv/www/www.verl.de/pages/public/uploads/tx_powermail/181lyetdi____or_85__select_85_from_pg_sleep_15__--

keine existierende Datei référencet. Der Dateiname enthält erkennbare SQL‑Injektions‑Versuche (or 85 select 85 from pg_sleep 15). Beim Versuch, eine Datei über die Powermail‑Extension hochzuladen, wird der Dateiname nicht ausreichend bereinigt/validiert, sodass der Upload‑Prozess entweder abgebrochen wird oder die Datei mit einem ungültigen Namen abgelegt wird. Anschließend versucht der Code (wahrscheinlich ein ViewHelper oder ein Controller‑Snippet, das die Dateigröße ermitteln will), filesize() auf diesen Pfad anzuwenden – das führt zur Warning, die im Exception‑Log erscheint.

2. Fix beschreiben (konkret)

Schritt‑für‑Schritt‑Lösung

  1. Prüfen, ob die Datei wirklich existiert, bevor filesize() aufgerufen wird.

    $filePath = PATH_site . 'uploads/tx_powermail/' . $fileName; // Beispiel
    if (is_file($filePath)) {
        $size = filesize($filePath);
    } else {
        // Datei fehlt – entweder 0 zurückgeben oder eine passende Fehlermeldung/loggen
        $size = 0;
        // Optional: Logging für Debugging
        \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Log\LogManager::class)
            ->getLogger(__CLASS__)
            ->warning('Powermail: Attempted to get size of non‑existing file: ' . $filePath);
    }
    
  2. Besser: Nutze das File Abstraction Layer (FAL) von TYPO3, das bereits существprüfung und Größenermittlung kapselt:

    $storage = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()
                ->getStorageObjectByName('uploads_tx_powermail'); // oder das richtige Storage‑Objekt
    $file = $storage->getFile($fileName); // Returns \TYPO3\CMS\Core\Resource\FileInterface or null
    $size = $file ? $file->getSize() : 0;
    
  3. Dateiname‑Sanitizing im Upload‑Prozess sicherstellen (Powermail‑Konfiguration oder ein eigener Hook):

    • Entferne oder ersetze Zeichen, die nicht im Dateisystem erlaubt sind (z.B. <>:\"|?*&$#[](){} und Leerzeichen am Anfang/Ende).
    • Begrenze die Länge und erzwinge eine erlaubte Erweiterung.
    • Beispiel‑Snippet für einen Hook in ext_localconf.php:
      $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['powermail']['fileNameProcessor'] = 
          \Vendor\MyExtension\Hooks\PowermailFileNameProcessor::class;
      
      In PowermailFileNameProcessor::processFileName($fileName) lässt du nur alphanumerische Zeichen, Punkte, Bindestriche und Unterstriche zu und ersetzen alles andere durch _.
  4. Dateisystem‑Berechtigungen prüfen – sicherstellen, dass der Web‑User (www-data bzw. apache) Schreibrechte auf uploads/tx_powermail/ hat, damit der Upload tatsächlich abgeschlossen wird und die Datei nicht nur als „Placeholder“ zurückbleibt.

3. Betroffene TYPO3 Extension nennen
Die Fehlermeldung stammt eindeutig aus dem Pfad uploads/tx_powermail/, also aus der Extension powermail (Extension‑Key: tx_powermail). Der Fehler tritt in einem Teil des Codes auf, der nach dem Upload die Dateigröße ermittelt (häufig in einem ViewHelper oder Controller, der die Datei für eine Bestätigungsmail oder eine weitere Verarbeitung benötigt).

4. Confidence (0‑100 %)
Aufgrund der klaren Pfad‑ und Extension‑Zuordnung, des typischen Musters beim fehlerhaften Dateinamen und der bekannten Problematik bei ungesicherten Dateinamen in Powermail schätze ich die Wahrscheinlichkeit, dass die oben beschriebene Ursache korrekt ist, auf 95 %. Der restante 5 % berücksichtigt äußerst seltene Szenarien (z. B. ein gleichzeitig vorliegendes Dateisystem‑Problem oder ein fehlendes PHP‑Modul), die jedoch die beobachtete Warning nicht besser erklären würden.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF