TYPO3

Sicherheit der Website und Performance Verbesserungen durch Systemupdates

Warum sollte man updaten?

Ein regelmäßiges Update Ihres TYPO3-Systems ist von entscheidender Bedeutung, um die Sicherheit, Stabilität und Leistungsfähigkeit Ihrer Website zu gewährleisten. Mit jeder neuen Version werden nicht nur neue Funktionen und Verbesserungen eingeführt, sondern auch Sicherheitslücken geschlossen, die potenziellen Angreifern den Zugang zu Ihren Daten ermöglichen könnten. Darüber hinaus tragen Updates dazu bei, die Performance Ihrer Website zu optimieren, was zu schnelleren Ladezeiten und einer besseren Benutzererfahrung führt. Indem Sie Ihr TYPO3-System aktuell halten, schützen Sie nicht nur Ihre Inhalte, sondern auch das Vertrauen Ihrer Nutzer. Daher ist es ratsam, Updates zeitnah durchzuführen und so die Integrität und Effizienz Ihrer Website zu sichern. Auf dieser Seite von uns können Sie sich über Schwachstellen und Systemprobleme für ihr Typo3 System informieren. Sie können sich allgemein über Systemupdates informieren, die möglichen Gefahren einsehen, die Vorteile von Systemupdates auf die Typo3 Versionen 11, 12 und 13 einsehen, über die Vorteile von Systemupdates auf die PHP Versionen 7 und 8 informieren, oder auch genauer über die aktuell bekannten Schwachstellen der Typo3-Versionen 8, 9, 10, 11 und 12 aufklären.

Allgemeine Vorteile

Egal für welche Version wirkt sich ein Upgrade auf eine höhere Version immer positiv aus, da es durch den Einsatz aktueller Technologien in der Regel performanter ist. Die Ladezeiten sind geringer (insbesondere ab Version 12), die Performanz ist besser.

Auch besteht bei alten Versionen oft das Problem dass sie veraltete Technologien als Systemvoraussetzung haben. Das kann soweit gehen, dass eine alte Installation nicht mehr beim Provider läuft, da die PHP-Version nicht mehr angeboten wird.

Je länger man wartet, desto mehr technische Schulden bauen sich auf, die einen dann später treffen.

Gefahren

Mit zunehmendem Alter einer TYPO3-Version werden die Sicherheitslücken zunehmend gefährlicher, da Hacker generell sehr innovationsfreudig sind. Der Betrieb von Websites, die von TYPO3 nicht mehr sicherheitstechnisch unterstützt werden, bedeutet gerade für Unternehmen mit sensiblen Geschäftsprozessen ein unkalkulierbares Risiko. Auch bei Webseiten ohne sensible Daten können unschöne Dinge passieren, wie die Änderung von Inhalten.

Oft gibt es auch Sicherheitslücken in verwendeten Plugins. Für diese werden zwar in der Regel schnell Sicherheitsupdates zur Verfügung gestellt, aber in der Regel nur für TYPO3-Versionen, die noch offiziell unterstützt werden, manchmal auch zusätzlich für ELTS-Versionen (ELTS = verlängerter Support für eine LTS-Version). Ältere Versionen müssen dann mit diesen Sicherheitslücken leben.

Neben TYPO3 selbst gibt es natürlich auch Sicherheitslücken in der verwendeten Programmiersprache (PHP). Seite Ende November 2022 gibt es für die PHP-Version 7.4 keine Sicherheitsupdates mehr. Der aktive Support ist bereits ein Jahr vorher ausgelaufen. Alle Versionen unter 7.0.8 sind als sehr unsicher eingestuft, ihr CVSS-Wert (berechnet aus dem jeweils am höchsten eingestuften CVE) liegt bei 10.0 (höchster möglicher Wert). Die Versionen 7.0.8 – 8.0.30, 8.1.0 – 8.1.29 sowie 8.2.0 – 8.2.19 sind mit 9.8 eingestuft. Die Versionen 8.2.20 – 8.2.22, 8.3.8 – 8.3.10 sowie alle Versionen ab 8.4 haben einen Wert von 0.0, sind also als sicher eingestuft.

PHP-Versionen

Dies sind die jeweils höchsten verwendbaren PHP-Versionen für die verschiedenen TYPO3-Versionen:

  • Version 7 => PHP 7.3.x
  • Version 8 => PHP 7.4.x
  • Version 9 => PHP 7.4.x
  • Version 10 => PHP 7.4.x
  • Version 11 => PHP 8.2.x
  • Version 12 => PHP 8.2.x
  • Version 13 => PHP 8.3.x

Datenbank Versionen

Auch die verwendete Datenbank (MySQL bzw. MariaDB) können Sicherheitslücken aufweisen.

  • Version 7 => MySQL 5.0 – 5.6
  • Version 8 => MySQL 5.0 – 5.7, MariaDB 10.0-10.1
  • Versionen 9-11=> MySQL 5.0 – 5.7, MariaDB 10.2.7+
  • Version 12-13 => MySQL 8.0+, MariaDB 10.3+

Konkrete Vorteile von Typo3 Updates

Hier ein paar konkrete Vorteile der Versionen 11, 12 und 13. Die Version 13 LTS (Long Term Support) kommt im Herbst 2024 auf den Markt.

Typo3 V11:

  • Multi-Factor-Authentication (MFA) => verbesserte Sicherheit im Backend
  • Deep-Links ins Backend (direkter Link auf Module) => einfacher Austausch untereinander, woran man gerade arbeitet
  • Neue Bootstrap-Version fürs Backend (V5)
  • Button, um direkt Notizen zur Seite hinzuzufügen
  • verbesserter Datepicker
  • rekursives Löschen von Seiten
  • Kontextmenü jetzt über Tastatur erreichbar
  • CSV und JSON-Format für Download aus Listenansicht heraus
  • aus Dateiliste können mehrere Dateien / Ordner gleichzeitig als zip heruntergeladen werden
  • Dateiliste bietet nun auch frei wählbare Sichtbarkeit von Spalten an
  • Workspaces wurden verbessert
  • Redirects: Auflistung nie genutzter Redirects

Typo3 V12:

  • flexiblere Konfiguration der Redaktionsumgebung
  • Backend nahezu barrierefrei zugänglich
  • Backend Usability verbessert (Drag & Drop verbessert, verbesserte Kontextmenüs, verbessertes Adminpanel, das unter anderem sofort die entsprechende Seite im Backend öffnen kann)
  • Verbesserungen im Dateimanager (Drag & Drop von Dateien, Kartenansicht für größere Thumbnails – Auswahl der Ansicht wird gespeichert)
  • Optimierte Suche im Backend (zusätzliche Filterfunktionen)
  • Verwaltung von Redirects direkt im Backend, automatische Anpassung bei Änderung des Seitentitels auch für die Unterseiten (wichtig für SEO, um keine toten Links in der Suchmaschine zu haben und die Gewichtung der Seite beizubehalten
  • neue Version des CKEditors (Texteditor)
  • Webhooks + Reactions für bessere Kommunikation mit externen Programmen
  • verbesserte Sicherheit (Einführung CSP-Header, Passwort-Anforderungen einstellbar, neue Standard-Passwortrichtlinien, Standard-Sicherheits-Header im Backend)
  • Festlegen einer Aufbewahrungsfrist für gelöschte Datensätze zur Einhaltung von Richtlinien zur Datenaufbewahrung (DSGVO)
  • Verbesserungen der Mehrsprachigkeit (mehrstufiger Fallback, Länderlisten-API)
  • mehr Leistung durch PHP 8 => drastische Reduzierung der Ladezeit der Webseite
  • mehr Stabilität durch Verwendung der aktuellsten PHP- und Datenbankversionen sowie Aktualisierung von altem Code, Umstellung auf Symfony 6
  • Hooks und Konfigurationen zur weitergehenden Sendekontrolle bei der Mail-API

Typo3 V13:

  • bietet erhebliche Leistungsverbesserungen, die zu schnelleren Ladezeiten und besserer Skalierbarkeit führen => gut für SEO
  • modernisierte Benutzeroberfläche, die fast 100% barrierefrei ist
  • erweiterte SEO-Funktionen
  • mobile-first-Ansatz => sinnvoll, da inzwischen mehr mobile als desktop Besucher surfen
  • neue Sicherheitsfeatures wie Multi-Faktor-Authentifizierung helfen, die Anforderungen der DSGVO zu erfüllen
  • aktuellste PHP-Version kann verwendet werden, was wieder gut für die Leistungsverbesserung ist
  • Unterstützung des neuen webp-Formates bei Bildern
  • Extension-Manager und Admin-Tools wurden aus dem Core entfernt, da die meisten Installationen nun auf Composer laufen; Composer erleichert die Übertragung von Änderungen von Entwicklungs- auf Produktionssysteme (Live-Server). Der Verzicht auf die Installation von Admin Tools und/oder Extension Manager erhöht die Sicherheit, da Angreifer ohne diese Module nicht die Verwaltungsfunktionen auf niedriger Ebene ausnutzen können
  • der TYPO3-eigene Formular-Manager bietet inzwischen sehr viele Funktionen und Erweiterungsmöglichkeiten
  • es können eigene Tastaturkürzel verwendet werden im Backend
  • vereinfachte Bearbeitung von Metadaten einer Datei
  • es können Farbpaletten für das Backend konfiguriert werden
  • es wurden verschiedene Bibliotheken (PHP, Javascript) aktualisiert bzw. ausgetauscht durch modernere Varianten
  • neue APIs, um GA, Matomo oder Facebook einfacher integrieren zu können
  • es wurde eine vereinfachte Version der Workspaces eingeführt, um die Verwendung von Workspaces einfacher zu machen für die Redakteure
  • Content Blocks: Im Rahmen der Structured Content Initiative wird die Unterstützung für benutzerdefinierte, semantisch strukturierte Inhaltsblöcke verbessert => gut für SEO; Erstellung von custom Elementen jetzt im Core
  • verbesserte Backendsuche => ausgeweitet auf Backend-Module und Workspaces
  • der Linkvalidator („Check Links“) ermöglicht jetzt das schnelle Editieren eines gesamten Datensatzes, in dem der „Broken Link“ gefunden wurde
  • wiederverwendbare Komponenten sind Bausteine oder Module, die bei der Erstellung neuer Websites verwendet werden können
  • Site Sets: es können Einstellungen für TYPO3 zwischen verschiedenen Installationen geteilt werden, praktisch, wenn man eigene Instanzen für verschiedene Domains nutzt
  • Vereinfachung des „Mülleimers“ (Recycler)

Vorteile der verschiedenen PHP-Versionen

PHP7:

PHP7 kam 2015 heraus und hatte Dank der neuen Zend Engine 3 signifikante Verbesserungen der Performance. Die letzte Versions-Reihe war 7.4.

PHP8:

Auch hier gab es eine Optimierung der Performance unter anderem durch den JIT Compiler, der eine dynamische Code-Ausführung erlaubt, schnellere Kompilation, verbessertes Speicher-Management sowie ein verbessertes Handling großer Arrays. Die Fehlerbehandlung wurde ebenfalls verbessert, wodurch der Code stabiler läuft, und durch eine verbesserte Typen-Behandlung kann der Code auch flexibler und stabiler werden.

Bekannte Typo3 Schwachstellen

Version 8

Cross-Site-Scripting (XSS) Sicherheitslücken:

  • CVE-2019-12748: Diese Schwachstelle ermöglicht es Angreifern, bösartigen Code über fehlerhafte Eingabeverarbeitung in TYPO3 einzuschleusen, was insbesondere Backend-Nutzer mit hohen Rechten betrifft.

Offenlegung des Klartext-Verschlüsselungsschlüssels:

  • CVE-2024-25119: In TYPO3-Versionen von 8.0.0 bis 8.7.56 könnte der Klartextwert des Verschlüsselungsschlüssels im Installations-Tool angezeigt werden. Diese Sicherheitslücke kann von Nutzern mit Administratorzugriff ausgenutzt werden und gefährdet die kryptografische Sicherheit.

Unbeschränkter Datei-Upload:

  • CVE-2017-14251: Diese Sicherheitslücke betrifft TYPO3 von Version 8.0.0 bis 8.7.4. Authentifizierte Benutzer können Dateien mit gefährlichen Erweiterungen wie .pht hochladen, was zu einer Ausführung von beliebigem Code führen kann.

SQL-Injection und Umgehung der Autorisierung:

  • Verschiedene Unterversionen von 8.7 sind auch von Problemen betroffen, die unbefugten Zugriff oder Manipulation von Daten unter bestimmten Konfigurationen ermöglichen.

Version 9

Hier sind nur die Sicherheitslücken aufgeführt, die den Core direkt betreffen bzw. Plugins, die zum Core gehören wie das Formular-Framework. Es gibt viele – auch gefährliche – Sicherheitslücken in den verschiedenen Plugins, die man installieren kann. Sicherheitsupdates von Plugins werden in der Regel nur für die TYPO3-Versionen bereit gestellt, die “aktuell” sind (also mit Sicherheitsupdates versorgt werden).

Cross-Site-Scripting (XSS) Sicherheitslücken:

  • CVE (not assigned yet): Die Statusanzeige im frontend_login Plugin ermöglicht eine XSS-Attacke. Hierfür wird ein Backend- oder Frontend-Benutzer benötigt.
    8.0.0-8.7.20, 9.0.0-9.5.1

  • CVE (not assigned yet)/CVE-2020-15241: Templates, die Fluid nutzen können einer XSS-Atacke zum Opfer fallen, da Benutzereingaben nicht sauber enkodiert werden oder wenn diese den ternären Operator nutzen ({showFullName ? fullName : defaultValue})
    8.0.0-8.7.22, 9.0.0-9.5.3/8.0.0-8.7.24, 9.0.0-9.5.5

  • CVE (not assigned yet)/CVE: not assigned yet: Formulare, die mit der TYPO3-eigenen Extension tx_form erstellt wurden enkodieren Benutzereingaben nicht sauber. Außerdem kann die Ausgabe der Fehler einer Validierung der Felder für eine XSS-Attacke genutzt werden.
    8.0.0-8.7.22, 9.0.0-9.5.3/8.0.0-8.7.29, 9.0.0-9.5.11

  • Die Typolink-Funktion zur Erstellung von Links kann für eine XSS-Attacke genutzt werden. Dies trifft niicht

Information Disclosure Sicherheitslücken

Preisgabe von Informationen an nicht-autorisierte Personen

  • CVE (not assigned yet): Fehlgeschlagene Logins wurden geloggt mit dem Tag “warning” im default Stream und enthielten Klartext-Benutzerinformationen.
    9.0.0-9.5.5

Arbitrary Code Execution

Ausführung von (fremdem) Code

  • CVE-2019-11832: Ausführung von Postscript-Code beim Bearbeiten von Bilder. Benötigt entweder einen Backend-Benutzer-Zugang oder einen Bild-Upload im Frontend.
    8.0.0-8.7.24, 9.0.0-9.5.5

Security Misconfiguration

Einstellungen, die eine Sicherheitslücke zur Folge haben können.

  • Extensions, die für das Hashen von Passwörtern das Plugin ext:saltedpasswords verwendet haben, könnten Passwörter im Klartext gespeichert haben, nachdem dieses Plugin von TYPO3 entfernt wurde.

Weiteres

  • CVE-2019-12747: Die FormEngine und die DataHandler sind angreifbar für eine unsichere Deserialisierung. Man benötigt allerdings einen Backend-Account, um das nutzen zu können.
    8.0.0-8.7.26, 9.0.0-9.5.7

Version 10

Arbitrary Code Execution

Ausführung von (fremdem) Code

  • CVE-2020-11067, CWE-502: Die Benutzereinstellungen haben eine Sicherheitslücke durch unsichere Deserialisierung. In Kombination mit Drittpartner-Komponenten kann dies zur Ausführung von remote Code führen. Es wird ein gültiger Backend-Benutzer dafür benötigt.
    9.0.0-9.5.16, 10.0.0-10.4.1

  • CVE-2020-15098, CWE-325, CWE-20, CWE-200, CWE-502: Ein Angreifer kann eigene Daten mit einer Verifizierung versehen und dadurch Berechtigungen bekommen (und mit den dadurch erhaltenen Berechtigung z.B. die Konfigurationsdatei von TYPO3 auslesen, die wiederum den Zugang zur Datenbank enthält) oder eigenen Code ausführen.
    9.0.0-9.5.19, 10.0.0-10.4.5

Cross-Site Scripting

  • CVE-2020-26227, CWE-79/CVE-2020-26216, CWE-79: Bei der Verwendung von Fluid werden Daten nicht genügend geprüft, die z.B. in einem Label für ein Formular im Backend oder Frontend verwendet werden oder auch in anderen Parametern wie “additionalAttributes”.

    9.0.0-9.5.22, 10.0.0-10.4.9

Phishing-Attacke

  • CVE-2021-21338, CWE-601: Das Login-Handling lässt offene Weiterleitungen zu so dass ein Angreifer auf beliebigen Inhalt weiterleiten kann und dies zu einer Phishing-Attacke führen kann. Man benötigt dafür keine Authentifizierung.
    9.0.0-9.5.24, 10.0.0-10.4.13

Information Disclosure

  • CVE-2021-32767, CWE-532: Benutzerdaten wurden als Plaintext geloggt, wenn das Log Level „debug“ gesetzt war (nicht default).
    9.0.0-9.5.27, 10.0.0-10.4.17

Weitere Sicherheitslücken

  • CVE-2020-11066, CWE-502: Wird die Funktion „unserialize()“ für bösartigen Code von einer Benutzereingabe aufgerufen, so kann es zu folgenden Szenarien kommen: Löschen von Verzeichnissen auf dem Webserver (wenn vom Webserver schreibbar) und Verwendung des Servers als Mailrelay und damit das Versenden von Nachrichten unter der Identität der Webseite.
    9.0.0-9.5.16, 10.0.0-10.4.1
  • CVE-2020-11069, CWE-352, CWE-346: Die Verwaltung der Backend-Benutzer sowie das Installtool sind angreifbar über einen „same-origin request forgery“, d.h. eine Fälschung einer Anfrage an den Webserver, so dass sie aussieht, als käme sie vom selben Server. „same-origin“ heißt Protokoll, Port (falls angegeben) und Host sind identisch.
    9.0.0-9.5.16, 10.0.0-10.4.1
  • CVE-2020-26228, CWE-312: Die Session-Identifizierer wurden im Klartext gespeichert beim Speichern der Session. Dies kann in Kombination mit weiteren Attacken in Kombination z.B. zu einer SQL-Injection führen.
    9.0.0-9.5.22, 10.0.0-10.4.9
  • CVE-2021-21357, CWE-20, CWE-22, CWE-434: Durch unsaubere Validierung von Benutzereingaben bei den Optionen können beliebige Daten in das Formular-Framework eingeschleust werden, so dass man z.B. die erlaubten Dateitypen für einen Upload ändern kann. Es wird allerdings ein Backend-Account benötigt.
    9.0.0-9.5.24, 10.0.0-10.4.

Version 11

Information Disclosure

  • CVE-2022-31047, CWE-532: In Exception Handlern wurden Systemdaten wie z.B. Datenbankzugänge als Klartext geloggt, wenn der komplette Stack Trace geloggt wurde.
    11.0.0-11.5.10

  • CVE-2022-36105, CWE-208: Durch Beobachtung der Antwortzeit des Servers kann man unterscheiden, ob ein Benutzer-Account existiert oder nicht.
    11.0.0-11.5.15

Cross-Site Scripting

  • CVE-2023-24814, CWE-79: Die Komponente GeneralUtility::getIndpEnv() benutzt die ungefilterte Umgebungsvariable PATH_INFO, wodurch es Angreifern ermöglicht wird, bösartigen HTML-Code in Seiten, die noch nicht im Cache waren, einzufügen und diese zu cachen, so dass sie auch anderen Benutzern ausgeliefert werden.
    11.0.0-11.5.22

Denial of Service

Eine denial of service Attacke führt dazu, dass der Webserver außer Betrieb gesetzt wird durch eine zu hohe Auslastung.

  • CVE-2022-23500, CWE-405, CWE-674: Wenn eine nicht existierende Seite aufgerufen wird und dann eine Fehlerseite erscheint, die Inhalt von einer anderen (nicht erreichbaren) Seite bezieht, dann ruft die Fehlerseite sich immer wieder selbst auf, wodurch der Webserver unter der Last zusammenbrechen kann.
    11.0.0-11.5.19

Weitere Sicherheitslücken

  • CVE-2021-41113, CWE-352: Das neue Feature von TYPO3, direkte Links ins Backend zu teilen, ist anfällig für „cross-site-request-forgery“. Im worst case Szenario könnte ein Angreifer einen neuen Admin-Account anlegen, um das System zu schädigen.
    11.2.0-11.4.0

  • CVE-2022-23503, CWE-94: Durch die fehlende Teilung von Daten, die vom Benutzer gesendet wurden und der internen Konfiguration des Formular-Framworks, ist es möglich, dass Code als PHP ausgeführt wurde über Typoscript.
    11.0.0-11.5.19

Version 12

Cross-Site Scripting

  • CVE-2023-47125, CWE-79: Es gab mehrere Probleme mit dem typo3/html-sanitizer. Hier eines als Beispiel.
    12.0.0-12.4.7

Denial of Service

  • CVE-2024-34358, CWE-347, CWE-400: Der ShowImageController (eID tx_cms_showpic) hat keine HMAC-Signatur wenn es mit dem Parameter „frame“ aufgerufen wird. Dadurch keine eine beliebige Anzahl von Thumbnails durch den Server erstellt werden.
    12.0.0-12.4.14, 13.0.0-13.1.0

Wie können wir Sie unterstützen?

Ich gebe Ihnen gerne Auskunft.

Martin Simmerling
Geschäftsführer

  • 0711 220 40 93 0

  • info@digital-worx.de