TYPO3 Release 14.3.9
In der Reihe TYPO3 Release-Notizen beleuchten wir regelmäßig die wichtigsten Bug-Fixes/Security-Issues oder wichtigen Änderungen in einem neuen Patchlevel-Release. Diese Releases sind gemäß Roadmap bereits terminiert und erscheinen grob einmal im Monat.
Bugs haben je nach Projekt unterschiedliche Auswirkungen. Was in einem Projekt kritisch ist, kann in einem anderen kaum eine Rolle spielen. Unsere Gewichtung ist daher subjektiv und soll die Relevanz anderer Fixes nicht herabspielen.
Aktuelles Release
Dieses Security-Release behebt primär eine Sicherheitslücke beim Datei-Upload über EXT:form, bei dem zu persistierende Dateien in “saveToFileMount” hinterlegten Unterordnern nicht dort gespeichert wurden, sondern in “fileadmin/user_upload” - und somit öffentlich aufrufbar sein könnte. Ansonsten wurden eher kleinere Bugs behoben im Bereich RecordFieldTransformer, Extension Manager, Extbase/Request-Objekte und FAL.
Insgesamt gab es 40 Änderungen.
Sicherheit
TCA / Schema API / Record API
API (Frontend / Extbase)
- Etwaiger Extbase-Request-Kontext im PSR-Objekt wird beim 404-ErrorHandler nun entfernt, damit der Plugin-Extbase-Kontext korrekt angewendet werden kann.
- Bei Nutzung von WWW-Authenticate Headern werden die 401-Statuscodes nun nicht mehr forciert sondern können "überschrieben" werden.
- Der Extbase QueryParser nutzt keinen irrelevanten NULL-Check mehr für einen DataMapper Aufruf
- Extbase Backend-Module können nun die TypoScript-Konfiguration besser cachen und deutlich weniger Aufrufe durchführen
Backend: UI
- Das "Datei-Auswahl"-Modalfenster nutzt nun eine breite Darstellung für mehr Platz des Inhalts
- Bei der Suche nach Dateien werden nun die Storage-Roots aller gefundenen Verzeichnisse/Elemente aufgeklappt
Backend: API / Core
- WissenswertDas Backend-Routing reicht die "requirements" einer Route nun korrekt zu Symfony durch, um falsche Fallbacks zu verhindern.
- Der CSV-Export des Moduls für rohe Datenbankabfragen (EXT:lowlevel) nutzt nun korrekte PSR-7 Objekte zur Ausgabe
- Sprachdateien die nur in Configuration/Sets/*.xlf angeboten werden, können jetzt auch vom Sprachdatei-Download mit geprüft werden
- Der LanguageMenuProcessor verarbeitet internen State für Konfigurationsvariablen nun besser für langlebige Prozesse
- Der PageRouter kann nun besser weitere Routing-Kandidaten ausprobieren, wenn vorherige Routen Fehler werfen
- Die PageRepository-Methode für "versionOL" wertet Pointer für Verschiebungen in gewissen Randfällen korrekt aus
- Die TypeScript-Builds (intern) nutzen nun strictFunctionTypes
- Upgrade Wizards die nie ausgeführt werden müssten werden nun auch als "Erledigt" markiert
- Die Backend-Live-Suche führt zu keiner Fehlermeldung mehr in gewissen Randfällen wo ein Redakteur keine Page-Mount-Zugriffe hat
- Die TCA-Defaults werden nun auch für type-eingeschränkte Datensätze ausgewertet, deren showitems Einschränkungen enthalten
- Auch "0" Werte für TCA-Defaults werden in type-eingeschränkten Datensätzen mit ausgewertet
- Nutzung von korrekten PSR-Response-Objekttypen im LiveSearchController und StaticRouteResolver
Backend: FAL API
- Datei-Zugriffsrechte werden nicht nur beim Datei-Upload nun forciert, sondern auch beim Ändern von Dateiinhalten
- Die "resize" Methode wertet nun Datei-Erweiterungen case insensitive aus (lowercase)
- Fehler beim FAL-Verzeichniszugriff verhindern nun nicht mehr die Erzeugung des Report-Moduls
Backend: CKEditor / RTE
Backend: Extension Manager
- Composer-Dependencies können nun auch korrekt aufgelöst werden statt nur die Extensions mit TER-Key
- Die ExtensionManager-Extensionliste unterstützt nun längere Titel von Extensions im Namen der Extension.
Backend: EXT:workspaces / History
- Nur die UIDs von "inline" und "file" relations werden bei der automatischen Versionierung von Relationen berücksichtig
- Das "discard" Kommando löst Abhängigkeiten besser aus
- Nutzung des "discard" Kommandos in mehr Szenarien
- Bessere Behandlung von "UniqueInPid" beim Verschieben von Datensätzen
