TYPO3 Release 13.4.34
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 ein Sicherheitsrisiko für zielgerichtete XHR/Fetch-Angriffe im Backend bei Nutzung etwaiger XSS-Vektoren, bei denen der ReferrerEnforcer umgangen werden konnte.
Ansonsten enthält dieses Release einige Ergebnisse der TYPO3-DevDays Coding-Night - ein Ergebnis von viel Arbeit der Community. Herzlichen Dank an dieser Stelle!
Es gab Updates in Bezug auf Doctrine DBAL (Kompatibilität zu MariaDB 11.7 und 11.8, UCA Collations, Foreign Key Schema Migration, DBAL 4.4 Kompatibilität). Und Extbase-Objekte im Backend werden nun immer ohne “hidden/deleted”-Restriktionen ausgewertet. Fehlende FAL-Assets lösen keine Fehlerseiten im Frontend mehr aus. Zudem wurden einige kleinere Dependencies aktualisiert.
Insgesamt gab es 51 Änderungen.
Sicherheit
TCA / Schema API / Record API
API (Frontend / Extbase)
- WissenswertWenn eine Unterseite eines TreeMounts in einer übersetzten Sprache aufgerufen wurde, konnte das URL-Routing im Rootline-Lookup fehlschlagen. Nun wird hierfür die Standardsprache zum korrekten Resolving genutzt.
- WissenswertBei Nutzung des MemorySpool Mailtransports wurden etwaige PHP-Fehlermeldungen die während des Mailversand auftraten ggf. nicht geloggt (nur sehr spezifische Fehlermeldungen bislang). Dies wird nun großflächiger sichergestellt.
EXT:indexed_search
Content Security Policy (CSP)
Backend: UI
Backend: API / Core
- Sehr wichtigMariaDB 11.7 und 11.8 wurden in die TYPO3-Testmatrix eingefügt und Testfehler behoben. Auch für die PostgreSQL-Plattform gab es eine kleinere Anpassung. Somit können TYPO3 v13+v14 mit diesen Versionen potentiell genutzt werden. Fehler gerne berichten!
- Sehr wichtigExtbase-Objekte im Backend (!) werden nun immer ohne Anwendung von enableFields-Restriktionen ausgeliefert (also auch hidden und nicht veröffentlichte Datensätze starttime/endtime), so wie es das TYPO3-Backend auch mit Datensätzen tut. Hierzu wird der TYPO3-Request-Kontext für das Backend ausgewertet. Wenn plötzlich Datensätze angezeigt oder ausgewertet werden, die im Backend vorher nicht erschienen (z.b. eigene Module) dann müssen hier eigene Restrictions gezielt angewendet werden.
- WissenswertWenn ein Bild via TypoScript ausgegeben werden soll, welches in der FAL als "missing" deklariert ist, wird keine Exception mehr geworfen sondern kein Bild dargestellt und nur eine Warnung geloggt.
- WissenswertDie Ausgabe von fehlenden Bildern erzeugt nun kein leeres "src" Attribut mehr bei f:image ViewHelpern, sondern erstellt ein generell leeres Tag.
- WissenswertDatensätze, die ein l10n_parent, aber kein l10n_source definiert hatten, werden nun auch ohne dieses Feld korrekt zugeordnet
- WissenswertDer DataHandler `hasPageContextPermission` check wird nun wieder so platziert, dass der Permission-Check-Bypass korrekt ausgewertet wird
- Die Doctrine DBAL Nutzung vom "Table" schema greift nun sicherer auf die normalisierten Objektnamen zu, um eine Abhängigkeit von "wackeligen" Array-Key-Identifkationslookups zu vermeiden
- MariaDB 11.4+ kann nun mit den neuen UCA-Collations korrekt genutzt werden im SchemaMigrator
- Die DBAL Doctrine Auswertung gelöschter Foreign Key Constraints im SchemaMigrator erfolgt jetzt ohne PHP-Fehler
- Die Doctrine DBAL Nutzung vom "quoteIdentifier" Handling wurde optimiert und vermeidet eine deprecated Methode.
- Bessere Kompatibilität zu Doctrine DBAL 4.4 durch Nutzung modernerer Tabellen/Spalten-Introspection-Methoden
- Etwaige Doctrine DBAL Connection-Credential Details werden nun sowohl mit legacy als auch aktuellen Namen korrekt mit "****" Sternchen im Install-Tool maskiert
- Bugfix durch DBAL 4.4 Patch, Erstinstallation mit leerer, bestehender Datenbank funktioniert nun wieder
- Die Slug-Erzeugung in FormEngine klappte nicht zuverlässig, wenn ein DateTime-Feld als Teil einer URL-Struktur konfiguriert wurde
- Die LogRecord Methoden für offsetSet (ArrayAccess) wurde korrigiert, da sie bislang den falschen Wert zugewiesen hatte
- In Vorbereitung auf größere PHP 8.5 Kompatibilität wird "unset()" auf protected Klassen-Properties nun vermieden, um keine Probleme mit property Hooks zu erzeugen
- Nachträglicher Backport eines Patches um das PSR LoggerInterface via `injectLoggerInterface()` Methode setzen zu können (unabhängig vom Trait, unter Nutzung von DI)
- Das Parsing der "ORDER BY" Anweisung im Suggest-Wizard (TCA) kann nun korrekt mit Zeilenumbrüchen umgehen
Backend: CKEditor / RTE
Backend: Extension Manager
Backend: EXT:workspaces
Backend EXT:impexp
EXT:redirects
Strukturelles
Dependencies
- WissenswertVorbereitungen für PHP 8.6 Kompatibilität (Tests)
- Update von PHPStan
- Update von `christian-riesen/base32` auf v2
- Update von `symfony/property-info`
- Update von `guzzle` (Security Issues möglich)
