TYPO3 Release 14.3.3
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
Dies ist ein Security-Release. 13 Sicherheitslücken, alle für "vertrauensunwürdige Redaktion" relevant. Auch werden nun neuere Symfony-Versionen verwendet.
Weiterhin wurden kleinere Regression-Fixes für den Scheduler, Cache-Tag Collector für Site-Identifier und den MenuProcessor (titleField) eingebaut.
Insgesamt gab es 57 Änderungen.
Sicherheit
- Sehr wichtigDie Möglichkeit zum Backend-Password-Reset war auch an Stellen möglich, obwohl das UI dafür ausgeblendet wurde.
- Sehr wichtigTYPO3-CORE-SA-2026-008: EXT:form ermöglichte den redaktionellen Upload von speziell benannten YAML-Dateien die später als gültige Formulare genutzt werden konnten und somit bösartige Konfiguration enthalten konnten.
- WissenswertDer Parameter "returnUrl" im Template für die Site Configuration kann nicht mehr für potentielles XSS genutzt werden. Aufgrund Backend-CSP-Regeln lässt sich dies nicht ausnutzen und wird als regulärer Bug gehandhabt.
- WissenswertTYPO3-CORE-SA-2026-019: Weitere Absicherung der ".form.yaml" Dateiendung
- WissenswertTYPO3-CORE-SA-2026-017: Redakteure mit Schreibzugriff auf die neue EXT:form "form_definitions" Tabelle könnten potentiell sicherheitsrelevante Formularkonfigurationen am Zugriffschutz vorbei hochladen.
- WissenswertTYPO3-CORE-SA-2026-015: Zugriff auf Meta-Daten von diversen AJAX-API-Routen könnte Daten ohne ausreichende Rechtechecks offenbaren, die Redakteuren eigentlich vorhenthalten wären.
- WissenswertTYPO3-CORE-SA-2026-014: Es konnten Datensätze in das TYPO3-Clipboard eingefügt werden, auf die der Redakteur eigentlich keine Leserechte haben sollte.
- WissenswertTYPO3-CORE-SA-2026-013: Zugriffsrechte auf Dateien konnten über den FAL fallback-Storage (uid 0) umgangen werden und z.B. Logdateien an eingeloggte Redakteure offenbaren (wenn Dateidownload erlaubt)
- WissenswertTYPO3-CORE-SA-2026-012: Via DataHandler konnten Datensätze auf eine andere Seite verschoben werden, ohne dass Schreibzugrff auf die Quellseite existierte.
- WissenswertTYPO3-CORE-SA-2026-011: Redakteure mit Zugriff auf den Papierkorb konnten Datensätze wieder herstellen, zu denen keinen Zugriffsrechte bestanden.
- Wissenswert!TYPO3-CORE-SA-2026-007: Redakteure konnten mit fehlendem Zugriffskontrollen auf gewisse FileMounts schreibend zugreifen
- WissenswertTYPO3-CORE-SA-2026-006: Der typo3/html-sanitizer war gegen zwei Formen von XSS-Angriff verwundbar.
- TYPO3-CORE-SA-2026-018: Deserialisierung von PHP-Objekten innerhalb des Caching-Frameworks ist möglich, wenn Angreifer Schreibzugriff auf gewisse Datenanktabellen (sys_log oder auch wiederum Cache-Datensätze) erlangen könnten.
- TYPO3-CORE-SA-2026-016: Die FAL-API kann in Zusammenhang mit speziellen Projektverzeichnisnamen ausgenutzt werden um Administrator-Usern das Anlegen von Storages zu ermöglichen, die auf Verzeichnisse ausserhalb des Projektverzeichnisses zeigen.
- TYPO3-CORE-SA-2026-010: Datensätze mit gewissen HTML-Steuersequenzen konnten in EXT:indexed_search derart verarbeitet werden, dass ein XSS-Angriffsvektor (ausgehend von Backend-Redakteuren) entstand.
- TYPO3-CORE-SA-2026-009: Bei der Nutzung von "GeneralUtility::sanitizeLocalUrl" konnten Extensions in gewissen Fällen ausgenutzt werden um Weiterleitungen an beliebige URL-Endpunkte (für Phishing-Angriffe gegen Redakteure) einzubinden.
- Der RecordListController härtet nun die Sichtbarkeits-Togglefunktion gegen unberechtigten Zugriff (der DataHandler hat dies jedoch auch niederschwellig sichergestellt)
Regression-Bugfixes
- WissenswertDie Einbindung der Site-ID in den Cache-Tag Collector wurde rückgängig gemacht, da es Probleme machte auf Seiten, wo ungültige Zeichen (z.B. Punkte) im Site-Identifier genutzt wurden. Der Commit enthält ein Beispiel, wie man die Integration eines Site-Cache-Tags mit eigenem Code auch einfach durchführen kann.
- Die Methoden `SchedulerTaskRepository::add()` und `findRecordByUid` wurden wieder eingefügt, weil dies ein unbeabsichtiger Breaking Change für v14 war. Diese Methoden dürften jedoch eher selten genutzt werden.
- Der MenuProcessor wertet nun das Feld "titleField" wieder korrekt aus
EXT:form
- WissenswertDer DateiUpload von mehr als einer Datei hat einen falschen HTML/CSS-Identifier wiederverwendet, statt eigenständige zu erzeugen (wichtig für etwaige JS/DOM-Operationen)
- Handling des `TranslationServices` wurde in Hinblick auf Interface-Nutzung gehärtet
- Vermeidung eines PHP-Fehlers, wenn ein leeres TypoScript setup-Array vorliegt
Backend: UI
- Die User-Option "Maximale Titellänge" wird konsistenter an weiteren Stellen mit einbezogen
- Die "interne Beschreibung" Informationen von TCA-Feldern in FormEngine wurden nicht immer dargestellt
Backend: API
- WissenswertDie GarbageCollection Aufräumarbeiten nutzen nun segmentierte SQL-Abfragen, um bei sehr umfangreichen Cleanups keine SQL-Platzhaltermenge auszuschöpfen.
- WissenswertDer ProductionExceptionHandler kann nun den korrenten HTTP-Fehlercode aus der Exception auslesen anstelle einen hartkodierten 503 Fehler pauschal auszugeben.
- WissenswertDie Performance von `language:update` wurde verbessert
- Die `PageRepository->init()` Methode wurde verschlankt um den Konstrukturscope klarer zu definieren. Dies sollte keine Auswirkung auf aktuelle Nutzung haben und ist intern.
- Vermeidung irrelevanter label_alt Datenbank-Operationen bei Einsatz von formattedLabel_userFunc
- Ein DeprecationLog-Eintrag im PageRecordProvider für die Live-Suche wird für Prüfung von Zugriffsrechten nun vermieden
- Vermeidung eines PHP-Fehlers in der Dateiliste wenn Nicht-Admin-Nutzer einen FileMount durchsuchen, und die Navigationsstruktur aufgrund eines falschen Root-Nodes nicht dargestellt werden kann
- Ausgliederung des sicherheitsrelevanten "DeserializationService" (aus dem PolymorphicDeserializer) in eine eigene Klasse
- Die Methode `ExtensionManagementUtility::addTcaSelectItemGroup` kann nun die Position `top` korrekt auswerten, wenn eine Gruppe initial noch nicht existiert
- Der Konfigurationstyp "wrap" für TypoScript-Konstanten-Setup wird nun korrekt ausgewertet
PHP-Typfehler
- WissenswertVermeidung einer PHP-Exception für den Suggest-Wizard in FormEngine für Typ-lose Datenbanktabellen (z.b. sys_categories)
- Vermeidung eines Typfehlers wenn in IRRE-Relationen die starttime/endtime Datumsfelder angezeigt und gespeichert werden sollen "BackendUtility::daysUntil" Fehlfunktion.
