Kai Ole Hartwig
8 Min. Lesezeit
Mittel

TYPO3 SA-2026-020 (CVE-2026-15305): Der MimeTypeValidator im Form Framework wurde nie registriert — Fix in 14.3.5

Am 14. Juli 2026 hat das TYPO3-Security-Team TYPO3-CORE-SA-2026-020 veröffentlicht: CVE-2026-15305 (CVSS 4.0, Medium). Der MimeTypeValidator für FileUpload- und ImageUpload-Elemente im Form Framework wurde beim Aufbau des Formulars registriert — bevor die konkrete Formulardefinition mit ihrer allowedMimeTypes-Konfiguration angewendet wurde. Er landete dadurch nie in der aktiven Verarbeitungs-Pipeline. Ergebnis: Nutzer konnten Dateien mit beliebigem MIME-Type hochladen, unabhängig davon, welche Typen im Formular erlaubt waren. PHP-Datei-Uploads blieben durch eine separate, unabhängige Sperre weiterhin blockiert. Betroffen sind TYPO3 14.2.0 bis 14.3.4; 13.4-LTS ist laut Advisory nicht betroffen. Fix: TYPO3 14.3.5 LTS, kein Datenbank-Update nötig.

TL;DR — 90 Sekunden

Betroffen?

TYPO3 14.2.0 bis 14.3.4 mit ext:form-Formularen, die FileUpload- oder ImageUpload-Elemente mit allowedMimeTypes-Restriktion einsetzen. TYPO3 13.4-LTS (inkl. 13.4.33) ist laut Advisory nicht betroffen.

Risiko?

CVSS 4.0 (Medium): Der MimeTypeValidator wurde beim Form-Bau registriert, bevor die konkrete Formulardefinition angewendet wurde, und landete dadurch nie in der aktiven Verarbeitungs-Pipeline. Nutzer konnten Dateien mit beliebigem MIME-Type hochladen, obwohl im Formular nur bestimmte Typen erlaubt waren. PHP-Uploads blieben durch eine separate Sperre blockiert — keine direkte RCE über diesen Weg belegt.

Sofortmaßnahme?

Auf 14.3.5 aktualisieren: composer require typo3/cms-form:^14.3.5 typo3/cms-core:^14.3.5. Kein Datenbank-Update nötig, Cache leeren.

Empfehlung?

Wer 14.2.x/14.3.x mit produktiven Form-Framework-Uploads betreibt, patcht im nächsten regären Wartungsfenster. Angesichts CVSS 4.0 und weiterhin blockierter PHP-Ausführung ist kein Notfall-Rollout nötig — aber auch kein Grund zum Aussitzen.

Kritikalität?

medium — begrenzter Blast-Radius (kein RCE, schmales Versionsfenster), aber TYPO3-Core-relevant, leicht auszunutzen und leicht zu beheben.

Was ist das Problem?

Das TYPO3 Form Framework (ext:form) erlaubt es, in der YAML-Definition eines Formulars für FileUpload- und ImageUpload-Elemente eine allowedMimeTypes-Restriktion zu konfigurieren — zum Beispiel „nur PDF“ oder „nur JPEG/PNG“. Diese Restriktion wird technisch durch einen MimeTypeValidator durchgesetzt, der beim Verarbeiten des hochgeladenen Elements geprüft werden soll.

CVE-2026-15305 beschreibt einen Timing-Fehler in der Formular-Konstruktion: Der MimeTypeValidator wurde bereits beim Aufbau des Formularobjekts registriert — zu einem Zeitpunkt, an dem die konkrete Formulardefinition (inklusive der site-spezifischen allowedMimeTypes-Konfiguration) noch nicht auf das Element angewendet worden war. Dadurch landete der Validator nie in der tatsächlich aktiven Verarbeitungs-Pipeline, die beim Absenden des Formulars durchlaufen wird. Das Resultat: Die im Formular konfigurierte MIME-Type-Restriktion wurde schlicht nicht durchgesetzt, unabhängig davon, was der Betreiber in der Formulardefinition eingetragen hatte.

Wichtig zur Einordnung: Eine separate, von diesem Validator unabhängige Sperre verhindert weiterhin, dass PHP-Dateien auf diesem Weg hochgeladen werden können. Die Lücke ermöglicht also keinen direkten Weg zu serverseitiger Code-Ausführung über den PHP-Interpreter — sie hebelt ausschließlich die Typ-Allowlist selbst aus.

Wer ist betroffen?

BetroffenNicht betroffenBedingungen
TYPO3 14.2.0 bis 14.3.4TYPO3 13.4-LTS (inkl. 13.4.33, laut Advisory bestätigt nicht betroffen)ext:form muss FileUpload- oder ImageUpload-Elemente einsetzen
Formulare mit konfigurierter allowedMimeTypes-RestriktionFormulare ohne Upload-ElementeRestriktion muss als Sicherheitskontrolle eingesetzt werden — sonst kein praktischer Unterschied
Öffentlich erreichbare Upload-FormulareELTS-Linien 10.4/11.5/12.4 (separate, ältere Codebasis)Backend-interne Formulare mit eingeschränktem Nutzerkreis senken das praktische Risiko

Zu 14.0 und 14.1 macht das Advisory keine explizite Aussage — beide Versionslinien sind ohnehin End-of-Life und erhalten keine Wartung mehr, ein Wechsel auf 14.3.5 ist der einzig unterstützte Pfad.

Auswirkungen

Der unmittelbare Effekt ist ein stiller Bypass der MIME-Type-Allowlist: Wo ein Formular etwa „nur PDF“ erlauben sollte, akzeptierte TYPO3 faktisch jeden Dateityp. Da PHP-Dateien separat blockiert bleiben, ist keine direkte Remote-Code-Execution über diesen Weg belegt — die CVSS-4.0-Bewertung (Confidentiality: none, Integrity: low, Availability: low) spiegelt diesen begrenzten direkten Impact wider.

Das praktische Risiko hängt stark davon ab, wie das Zielverzeichnis für Uploads konfiguriert und ausgeliefert wird: Wird eine hochgeladene HTML- oder SVG-Datei später inline im Browser gerendert statt als Download erzwungen zu werden, ist Stored-XSS ein realistisches Szenario — SVG-Dateien können eingebettetes JavaScript enthalten, das beim inline-Rendering ausgeführt wird. Ebenso denkbar sind Downstream-Verarbeitungsfehler, wenn nachgelagerte Systeme (Bildverarbeitung, Virenscanner, Umwandlungs-Pipelines) unerwartete Dateitypen erhalten, auf die sie nicht vorbereitet sind. Wo Betreiber sich ausschließlich auf die Formular-seitige MIME-Type-Prüfung als Schutzmechanismus verlassen haben, war dieser Schutz faktisch wirkungslos.

Mitigation / Sofortmaßnahmen

Operativer Entscheidungsblock

Schritt 1 — auf 14.3.5 aktualisieren

 

# aktuelle Version prüfen
vendor/bin/typo3 --version
composer show typo3/cms-form

# aktualisieren
composer require typo3/cms-form:"^14.3.5" typo3/cms-core:"^14.3.5"
# bzw. breiter:
composer update typo3/cms-* --with-dependencies

# Cache leeren (kein DB-Update nötig)
vendor/bin/typo3 cache:flush

 

Schritt 2 — Upload-Verzeichnisse absichern, unabhängig vom Patch

 

# sicherstellen, dass Upload-Zielverzeichnisse keine Skripte ausführen können
# (Beispiel Apache .htaccess im Upload-Zielordner):
# <filesmatch>
#   Require all denied
# </filesmatch>

# Beispiel nginx: Ausführung im Upload-Pfad unterbinden
# location ^~ /fileadmin/form_uploads/ { fastcgi_pass off; }

# erzwungene Downloads statt Inline-Rendering (verhindert SVG/HTML-Stored-XSS)
# Content-Disposition: attachment; X-Content-Type-Options: nosniff

 

Diese serverseitige Absicherung ist unabhängig vom Patch sinnvoll — der Vorfall zeigt, dass eine Formular-seitige MIME-Type-Prüfung allein keine verlässliche Sicherheitsgrenze ist.

Detection / Prüfung

Version prüfen

 

vendor/bin/typo3 --version
composer show typo3/cms-form typo3/cms-core

 

Formulardefinitionen auf betroffene Upload-Elemente prüfen

 

# Form-YAML-Definitionen nach FileUpload/ImageUpload durchsuchen
grep -rl "type: FileUpload\|type: ImageUpload" fileadmin/ typo3conf/ 2>/dev/null

# konfigurierte allowedMimeTypes je Formular auflisten
grep -A3 "allowedMimeTypes" fileadmin/*/Form*.yaml 2>/dev/null

 

Upload-Zielverzeichnisse auf unerwartete Dateitypen prüfen

 

# Beispiel: Zielordner auf Dateitypen außerhalb einer erwarteten Liste durchsuchen
find fileadmin/form_uploads/ -type f ! -iname "*.pdf" ! -iname "*.jpg" ! -iname "*.png" -print

# Datei-Typen (Magic Bytes statt Dateiendung) gegenprüfen
find fileadmin/form_uploads/ -type f -exec file {} \;

 

Da die Lücke reine Validierungslogik betrifft und keine Ausführung ermöglicht, gibt es keine spezifischen Laufzeit-Indikatoren für aktive Ausnutzung — die Prüfung dient vor allem dazu, bereits hochgeladene, außerhalb der eigentlich konfigurierten Allowlist liegende Dateien zu identifizieren und zu bewerten.

Betreiberempfehlung

Mid-Market

Auf 14.3.5 im nächsten regulären Wartungsfenster aktualisieren. Kein Notfall-Rollout nötig — CVSS 4.0 und weiterhin blockierte PHP-Ausführung rechtfertigen keine Wochenend-Sonderaktion.

Enterprise / Multi-Site

Alle ext:form-YAML-Definitionen mit Upload-Elementen auditieren und dokumentieren, wo allowedMimeTypes als alleinige Schutzmaßnahme eingesetzt wurde. Serverseitige Absicherung der Upload-Zielverzeichnisse (keine Skriptausführung, erzwungene Downloads) unabhängig vom Patch nachziehen — dieser Vorfall zeigt exemplarisch, warum Client-/Formular-seitige Validierung niemals die einzige Verteidigungslinie sein sollte.

TYPO3-Agenturen mit Kundenprojekten

Da nur 14.2.x/14.3.x betroffen sind, lohnt sich ein kurzer Abgleich, welche Kundeninstallationen bereits auf 14 gewechselt sind — die 13.4-LTS-Mehrheit ist hier fein raus. Die CVE-Referenz gehört trotzdem in die nächste Wartungsnotiz, damit die Mitnahme dokumentiert ist.

Entscheidungsblock

Heute handeln, wenn: öffentliche Upload-Formulare mit MIME-Restriktion als Sicherheitskontrolle auf 14.2–14.3.4 produktiv sind. Reguläres Fenster, wenn: keine Upload-Elemente im Einsatz oder bereits auf 13.4-LTS.

Häufige Fragen zu CVE-2026-15305

Wie unterscheidet sich das vom 14-Advisories-Batch aus dem Juni?+

Der Juni-Batch (TYPO3-CORE-SA-2026-006 bis -019, auf diesem Blog bereits behandelt) betraf 15 CVEs über mehrere Core-Bereiche hinweg, darunter mehrfach das Form Framework via SQL-Injection bei der Admin-Konto-Anlage. CVE-2026-15305 ist eine eigenständige, später entdeckte Einzellücke im selben Modul, aber mit anderem Fehlerbild (Validierungs-Bypass statt SQL-Injection).

Reicht MIME-Type-Filterung als alleinige Schutzmaßnahme für Datei-Uploads?+

Dieser Vorfall zeigt genau, warum nicht: Eine einzelne Validierungsschicht kann durch einen internen Timing-Fehler komplett ausfallen, ohne dass es nach außen sichtbar wird. Serverseitige Kontrolle über Ausführung und Auslieferung hochgeladener Dateien (keine Skriptausführung im Upload-Verzeichnis, erzwungene Downloads statt Inline-Rendering) sollte unabhängig von der Formular-seitigen Typprüfung bestehen.

Was, wenn ich ext:form ohne Upload-Elemente nutze?+

Dann besteht für diese konkrete Lücke kein Angriffsvektor — FileUpload und ImageUpload sind die betroffenen Elementtypen. Ein Update auf 14.3.5 bleibt trotzdem im normalen Wartungszyklus empfehlenswert.

Muss ich nach dem Update die Datenbank migrieren?+

Nein. Der Fix ist ein reines Composer-Update auf 14.3.5 plus einmaliges Cache-Leeren — keine Datenbank-Änderungen erforderlich.

Betrifft die Lücke auch TYPO3 13.4-LTS?+

Nein, laut Advisory nur TYPO3 14.2.0 bis 14.3.4. Version 13.4.33 wurde explizit als nicht betroffen bestätigt — die große Mehrheit der TYPO3-Installationen auf der 13.4-LTS-Linie ist hier nicht betroffen.

Ist das eine Remote-Code-Execution (RCE)?+

Nein. PHP-Dateien bleiben durch eine separate, von diesem Validator unabhängige Sperre weiterhin blockiert. Weder das Advisory noch die herangezogenen Sekundärquellen belegen einen direkten Weg zu Code-Ausführung über diese Lücke.

Fazit

CVE-2026-15305 ist keine dramatische Lücke — CVSS 4.0, kein RCE, ein schmales Versionsfenster von nur zwei 14er-Minor-Releases. Genau das macht sie zu einem guten Lehrstück: Der Fehler liegt nicht in fehlender Validierungslogik, sondern in der Reihenfolge, in der Validatoren im Form Framework aufgebaut werden — eine Klasse von Bugs, die in komplexen Objekt-Konstruktions-Pipelines leicht übersehen wird und still bleibt, bis jemand gezielt danach sucht. Wer Formular-seitige MIME-Type-Prüfung als alleinige Verteidigungslinie für Datei-Uploads eingesetzt hat, sollte diesen Vorfall zum Anlass nehmen, serverseitige Kontrolle über Ausführung und Auslieferung hochgeladener Dateien nachzuziehen — unabhängig vom TYPO3-Patch-Stand.

Quellen

Ich patche Ihre TYPO3-Instanzen, auditiere Form-Framework-Konfigurationen und richte serverseitige Absicherung für Datei-Uploads ein, die nicht allein von MIME-Type-Validierung abhängt.

Composer-Update auf 14.3.5, Audit aller ext:form-Formulare mit Upload-Elementen, Härtung der Upload-Zielverzeichnisse gegen Skriptausführung und Inline-Rendering.

Plattform-Betrieb statt Beratung auf Papier: Ich prüfe, patche und härte Ihre TYPO3-Infrastruktur laufend.

Termin buchen

Über den Autor

[Translate to English:] Foto von Kai Ole Hartwig.

Kai Ole Hartwig

Freelance DevSecOps consultant · OnlyOle Consulting

Programming since 2002 – self-taught, set up my own business with KO-Web in 2012. Over 100 projects, with a focus on security, performance, automation and quality. Today freelance: DevSecOps consulting, training and software development.