Hoch

Wenn das CMS Backend-Passwörter im Klartext schreibt: TYPO3 14.2 und CVE-2026-6553

Ein einzelner Messingschlüssel auf Beton neben einem aufgeschlagenen Papier-Ledger, dessen halb abgehobene Seite einen Carbon-Schlüsselabdruck in dunklem Oxblood-Ton zeigt; Messingstempel und ledernes Notizbuch im kühlen Nordlicht.

Eine Woche nach der Veröffentlichung von CVE-2026-6553 sind viele TYPO3-14.2-Installationen weiterhin in einem Zustand, in dem Backend-Passwörter unverschlüsselt in der Datenbank liegen. Das Update auf 14.3.0 schließt die Lücke. Es bereinigt den Datenbestand nicht.

TL;DR — die 90-Sekunden-Zusammenfassung

CVE-2026-6553

Backend-User-Settings-Modul in TYPO3 14.2.0 serialisiert sensible Felder gemeinsam mit UI-Präferenzen — Passwörter landen im Klartext in be_users.uc und user_settings

Betroffene Version

ausschließlich TYPO3 14.2.0 — 14.1.x und früher sind nicht betroffen, 14.3.0 ist der Fix

Datenbank-Eingriff

Update auf 14.3.0 reicht nicht — die Spalten müssen bereinigt und alle Backend-Passwörter zwangs-rotiert werden

Folgeproblem

Backups aus dem 14.2.0-Zeitfenster enthalten Klartext-Passwörter — das verändert ihre Klassifizierung

Vier Leitplanken

Karenzzeit für LTS-Minors, Composer-Lockfile, sensitive Backup-Klassifizierung, strukturierte Bereinigung statt bloss patchen

NIS-2-Hebel

Authentifizierungsdaten-Schutz ist Pflicht — ohne Inventar und Audit-Log ist der Vorfall nachträglich nicht rekonstruierbar

 

Was ist das Problem?

Am 24. April 2026 veröffentlichte das TYPO3-Security-Team das Advisory zu CVE-2026-6553. Betroffen ist ausschließlich Version 14.2.0 (LTS): Im neuen Backend-User-Settings-Modul wurden sensible Felder wie Passwörter mit den üblichen UI-Einstellungen gemeinsam serialisiert und landeten im Klartext in den Spalten uc und user_settings der Tabelle be_users. Die offizielle Fix-Version ist 14.3.0.

Es handelt sich um einen klassischen Trennungsfehler im Datenmodell. Backend-Settings (UI-Präferenzen) und Identitätsattribute (Passwort, E-Mail) liegen in TYPO3 historisch in zwei getrennten Pfaden, weil der eine Pfad anders behandelt werden muss als der andere — mit Hashing, mit Audit-Logging, mit klarer Quelle der Wahrheit. In 14.2.0 wurde diese Trennung im neuen Modul aufgehoben. Das Resultat ist eine Datenbank, die einen Teil ihrer eigenen Schutzschicht verloren hat, ohne dass es im laufenden Betrieb sichtbar wird.

Für uns als Agentur, die TYPO3 in Kunden-Setups produktiv betreibt, war das ein kurzer Sonntagabend mit Zeilenzählen. Niemand auf unseren betreuten Plattformen hat in den letzten Wochen das Backend-User-Settings-Modul von 14.2.0 auf eine Weise genutzt, die das Problem ausgelöst hätte. Das ist kein Zufall, sondern eine Folge davon, dass wir Major- und Minor-Updates auf TYPO3-LTS-Linien grundsätzlich nicht am Tag des Releases einziehen.

Auswirkungen: Klartext-Passwörter sind kein Backup-Problem allein

Der Code läuft, das Backend antwortet, der Login funktioniert. Das einzige, was kaputt ist, ist eine unsichtbare Annahme — nämlich die, dass der Tabelleninhalt unter be_users ein hashedes Passwortfeld und ansonsten harmlose UI-Daten enthält. Wer auf dieser Annahme aufbaut (etwa weil er Backups als nicht-sensitiv klassifiziert oder Datenbank-Read-Zugriffe nicht protokolliert), trägt das Risiko nun in seinen Routinen mit, ohne es zu merken.

Backups sind rückwirkend sensitiver

Wer in dem Zeitfenster, in dem 14.2.0 produktiv lief, ein Backup gezogen hat — sei es das Hosting, sei es ein interner Job, sei es ein Dienstleister —, hat potenziell Klartext-Passwörter in seinem Backup-Pool. Das macht jedes solche Backup zu einem sensitiven Datenträger und verändert die Anforderungen an Aufbewahrung, Zugriff und Vernichtung.

Passwort-Wiederverwendung wird zum Cross-System-Risiko

Backend-Nutzer im TYPO3 sind häufig nicht nur Redakteure, sondern Externe, Agenturen, Test-Accounts. Die Annahme, dass diese Personen für jedes System ein eigenes, starkes Passwort vergeben, hält einer nüchternen Prüfung selten stand. Ein in be_users.uc gespeichertes Klartext-Passwort kann deshalb zur Öffnung anderer Systeme werden, in denen TYPO3 selbst gar nicht im Spiel ist.

NIS-2 macht das zum dokumentierten Vorfall

NIS-2 verlangt im Risikomanagement explizit Schutz von Authentifizierungsdaten und ein definiertes Patch-Management. Wer unter NIS-2 fällt, ist verpflichtet, einen Vorfall dieser Klasse strukturiert nachzuvollziehen — also: Welche Systeme waren betroffen, welche Backups, welche Personen, welche Folgemaßnahmen. Ohne sauberes Inventar und ohne Audit-Log ist das im Nachhinein nicht mehr leistbar.

Wer ist betroffen?

Im Kern: jede TYPO3-Installation, die zwischen dem 14.2.0-Release und dem 14.3.0-Patch die LTS-Minor aktiv ausgerollt hat. Drei Konstellationen sind besonders relevant.

Wer 14.2.0 nie produktiv hatte oder vor dem 24. April 2026 bereits auf 14.3.0 gewechselt ist, ist nicht direkt betroffen. Backups aus dem 14.2.0-Fenster bleiben dennoch sensitiver Datenträger.

Mitigation und Sofortmaßnahmen — vier Schritte, in dieser Reihenfolge

Quick-Start, in der Reihenfolge in der wir aktuell aufräumen. Jeder Schritt setzt den davor voraus.

 

# 1. Update einziehen (Composer-basiert)
composer require typo3/cms-core:^14.3.0 --update-with-dependencies
vendor/bin/typo3 upgrade:run

# 2. be_users-Tabelle prüfen und bereinigen
mysql -e "SELECT uid, username, LENGTH(uc) AS uc_len \
         FROM be_users WHERE uc IS NOT NULL"
mysql -e "UPDATE be_users SET uc = NULL, user_settings = NULL"

# 3. Erzwungener Passwort-Reset für alle Backend-Nutzer
mysql -e "UPDATE be_users SET password = '', \
         tx_extbase_type = 'reset_required'"

 

1. Karenzzeit für Minor-Releases auf LTS-Linien

Eine 14.2.0 wird in unserem Update-Pfad nicht am Erscheinungstag eingezogen, sondern erst, wenn sie eine definierte Reifezeit überstanden hat. Im konkreten Fall hätte die Karenzzeit genügt, um den Patch 14.3.0 abzuwarten und 14.2.0 schlicht zu überspringen. Ausnahme bleibt der bekannte, aktiv ausgenutzte CVE — dann gehen wir bewusst auf die neue Version mit kalkuliertem Risiko.

2. Composer-basierte Installation mit committetem Lockfile

Auch für TYPO3 gilt: keine „latest“-Versionen, kein composer update in CI, sondern composer install gegen ein versioniertes composer.lock. Das verhindert, dass eine spontan aktualisierte Dependency unbemerkt in einen Build rutscht. Dieselbe Disziplin wie im Composer-CVE-Beitrag.

3. Datenbank-Backups als sensitiv klassifiziert

Wer Backups standardmäßig als „intern, vertraulich“ führt, kann auf Vorfälle wie CVE-2026-6553 reagieren, ohne erst die eigene Klassifizierung neu erfinden zu müssen. Das spart Wochen. Aufbewahrungs- und Vernichtungsregel sind im Backup-Konzept definiert, nicht im Vorfall improvisiert.

4. Strukturierte Bereinigung statt blosses Update

Wenn eine Lücke produktive Daten kompromittiert, ist das Update Schritt eins von drei. Schritt zwei ist die Bereinigung der bereits gespeicherten Klartext-Daten in be_users.uc und user_settings. Schritt drei ist der erzwungene Passwort-Reset für alle Backend-Nutzer plus Aktivierung von MFA. Erst dann ist der Vorfall sauber abgeschlossen.

Detection und Prüfung

Fünf Kernfragen — in einer halben Stunde haben Sie Klarheit über Ihren Vorfall-Status.

Quick-Check-SQL, das wir vor jedem Cleanup fahren:

 

-- Welche be_users haben überhaupt user_settings/uc?
SELECT uid, username,
       CASE WHEN uc IS NOT NULL THEN LENGTH(uc) ELSE 0 END AS uc_len,
       CASE WHEN user_settings IS NOT NULL THEN LENGTH(user_settings) ELSE 0 END AS us_len
FROM be_users
ORDER BY uc_len + us_len DESC;

-- Suche nach typischen Klartext-Indikatoren
SELECT uid, username
FROM be_users
WHERE uc LIKE '%password%' OR user_settings LIKE '%password%';

Betreiberempfehlung

Was für welches TYPO3-Setup jetzt operativ stehen sollte — abhängig davon, wo Sie heute stehen.

Cross-Referenzen: der Composer-CVE-Beitrag für Update-Disziplin, der Managed-Hosting-Beitrag für Backup-Klassifizierung, und der Externe-IT-Abteilung-Beitrag für die strukturelle Einbindung in NIS-2-Disziplin.

Fazit

Die meisten Pipeline-Reviews, die wir in den letzten Monaten gemacht haben, zeigen das gleiche Muster: TYPO3 wird gepatcht, weil das Update kommt. Selten wird geprüft, ob der Datenbestand nach dem Update noch zur Annahme passt, gegen die das Update geschrieben wurde. Im Fall von CVE-2026-6553 ist genau das der Punkt, an dem die Mehrarbeit liegt.

Die Frage lautet nicht, ob 14.3.0 bei Ihnen ausgerollt ist. Sie lautet, ob die be_users-Tabelle in Ihrer produktiven Datenbank heute noch die Spuren von 14.2.0 trägt — und ob jemand das systematisch überprüft hat.

Eine längere Aufarbeitung mit konkreten SQL-Snippets für die Bereinigung von be_users.uc und user_settings und einer Einordnung, warum eine Karenzzeit auf LTS-Minor-Releases für TYPO3 strukturell sinnvoll ist, findet sich unter ole-hartwig.eu.

Häufige Fragen zum TYPO3-CVE

Müssen wir den Vorfall unter NIS-2 melden?+

Wenn Sie unter NIS-2 fallen, hängt das von der Betroffenheit ab. Eine erfolgreiche Ausnutzung mit nachweislichem Datenabfluss ist ein meldepflichtiger Vorfall – ein nicht ausgenutzter, durch Patch geschlossener Pfad in der Regel nicht. Was in jedem Fall gehört: ein interner Vermerk über die Prüfung, das Update, die Bereinigung und die Passwort-Rotation. Genau diese Form von Dokumentation erwartet das BSI im nächsten Audit.

Wie aufwändig ist die Bereinigung der be_users-Tabelle?+

Geringer, als die meisten Teams annehmen. Ein gezieltes SQL-Skript entfernt die nicht-UI-Felder aus uc und user_settings in wenigen Sekunden. Aufwändiger ist die Begleitung: Vorab Backup ziehen, Reset-Workflow für alle Backend-Nutzer einrichten, MFA scharfschalten, Audit-Eintrag dokumentieren. Für eine mittelgroße Installation rechnen wir mit einem halben Tag inklusive Dokumentation.

Was heißt „Karenzzeit für Minor-Releases“ konkret?+

Ein neuer Minor-Release auf einer LTS-Linie wird in unserem Update-Pfad nicht am Erscheinungstag eingezogen, sondern erst nach einer definierten Reifezeit – typischerweise zwei bis vier Wochen, je nach Sensitivität. Das gibt der Community und den Maintainern Zeit, einen Bug oder eine Sicherheitslücke zu entdecken. Ausnahme ist immer der Fall eines bekannten, aktiv ausgenutzten CVE in der laufenden Version.

Reicht das Update auf 14.3.0 nicht aus?+

Das Update verhindert, dass weitere Klartext-Daten geschrieben werden. Bereits gespeicherte Klartext-Felder in be_users.uc und user_settings bleiben dort liegen, bis sie aktiv bereinigt werden. Für eine saubere Schließung des Vorfalls braucht es deshalb drei Schritte: Update, Datenbankbereinigung, erzwungener Passwort-Reset für alle Backend-Nutzer.

Wir haben 14.2.0 nie ausgerollt — sind wir trotzdem betroffen?+

Direkt nicht. Der Datenbestand entsteht nur dann unverschlüsselt, wenn Backend-Nutzer das User-Settings-Modul von 14.2.0 verwendet haben. Wer von 14.1 direkt auf 14.3 gegangen ist oder 14.2.0 nur kurz auf einem Staging-System produktiv hatte, muss vor allem prüfen, ob in dem Zeitfenster Backups gezogen wurden. Sind diese in der Aufbewahrung, sollten sie als sensitiv markiert werden.

Bevor der nächste TYPO3-Patchday kommt – sprechen wir über Ihre Datenbank.

Wie sauber ist Ihre be_users-Tabelle wirklich?

Wenn Sie TYPO3 14.x produktiv betreiben, lohnt sich ein nüchterner Blick. 30 Minuten, kein Pitch. Wir gehen mit Ihnen durch, ob Ihr Datenbestand nach dem Update auf 14.3.0 noch Spuren von 14.2.0 trägt, welche Backups in den letzten Wochen sensitiv geworden sind und welche nächsten Schritte den größten Hebel hätten.

Termin direkt vereinbaren