Anwendung: | Typo3 6.1 - Alle Versionen |
Kategorie: | Webanwendung |
Art: | Rechteausweitung / Erstellung beliebiger Dateien -> Remote Code Execution |
Letztes getestetes Update: | 30.07.2013 |
Remote: | Ja |
Credits: | Sebastian Nerz <sebastian.nerz@syss.de> |
Autor der Empfehlung: | Sebastian Nerz <sebastian.nerz@syss.de> |
Schwere: | Hoch - jeder gültige Benutzer kann beliebige PHP-Dateien erstellen, bearbeiten und ausführen |
Risiko: | Hoch |
Hersteller: | Open Source, TYPO3 |
Stand der Fehlerbehebung: | Offen |
TYPO3 ist ein OpenSource Web Content Management Framework, basierend auf PHP. Es beinhaltet eine Sicherheitslücke, die es beliebigen registrierten Benutzern erlaubt, beliebige Dateien anzulegen, zu bearbeiten und auszuführen ohne Berücksichtigung der Rechte dieser Benutzer oder des Dateitypes.
TYPO3 beinhaltet ein komplexes System an Benutzerberechtigungen und eine Reihe von Dateifiltern. So dürfen in der Standardkonfiguration beispielsweise aus Sicherheitsgründen keine PHP-Dateien hochgeladen werden. Dennoch ist es möglich, beliebige PHP-Dateien umzubenennen, zu erstellen oder zu bearbeiten, eingeschlossen die lokale Konfiguration oder die TYPO3-Dateien selbst. Zusätzlich benötigt ein Benutzer zwar eigentlich bestimmte Berechtigungen, um den Dateimanager öffnen zu können, direkte Aufrufe der URL zur Erstellung/Bearbeitung oder zum Umbenennen von Dateien werden aber nicht auf die Benutzerberechtigungen überprüft. Entsprechend kann ein beliebiger Benutzer, der sich in das TYPO3-Backend einloggen kann, PHP-Dateien erstellen, beliebigen Code in diese Dateien schreiben und sie später ausführen.
Wenn Dateifilter explizit umgestellt werden um PHP-Dateien zu verbieten, ist die direkte Erstellung von PHP-Dateien zwar weiterhin möglich, sie können aber nicht mehr beschrieben werden. Möglich ist es aber weiterhin, beliebige Dateien nach .php umzubenennen und so beispielsweise eine Textdatei zu erstellen und zu befüllen und sie danach in eine PHP-Datei umzubenennen. Dieser Fehlerteil wurde in der Version 6.1.3 vom 30.07.2013 gefixt. Mit diesem Sicherheitsrelease ist die Beschreibung von PHP-Dateien bzw. die Umbenennung nach .php nicht mehr möglich.
Das Nutzen andere Fehlerbestandteile insbesondere die Umgehung der TYPO3-Rechteverwaltung, die Path-Traversal-Schwachstelle oder das Auslesen von TYPO3-Dateien ist allerdings weiterhin möglich.
Selbstverständlich können Benutzer damit beispielsweise eine Webshell erstellen, die TYPO3-Konfiguration auslesen oder administrative Berechtigungen erhalten. In der gepatchten Version ist es beispielsweise noch möglich, die Installationsroutinen zu aktivieren und die Installationspasswörter auszulesen. Damit können dann wieder Veränderungen am System vorgenommen werden.
Zusätzlich bietet ein Standard TYPO3-System keinerlei Schutz vor Cross-Site Request Forgery, abgesehen von einer Überprüfung des HTTP Headers Referer. Entsprechend wäre es auch möglich, legitime Benutzer auszutricksen und so die Sicherheitslücken auszunutzen.
Die mit Abstand schwerste Fehleranreihung ist im File Abstraction Layer von TYPO3. Dieser erlaubt eine Verwaltung von Dateien im TYPO3-Backend. Administratoren können darüber beispielsweise Systemkonfigurationen verändern, einfache Anwender können Bilder hochladen oder verwalten. Dieser File Abstraction Layer hat mehrere Schwachstellen. Sie erlauben es einem authentifizierten Benutzer, das TYPO3-Berechtigungssystem zu umgehen und beliebige Dateien zu lesen, zu schreiben oder zu erstellen.
In allen Fällen muss der HTTP Header Referer korrekt gesetzt sein. Bei einer Standardinstallation ist es ausreichend, wenn er auf den korrekten Host gesetzt wird.
Eine echte Lösung setzt voraus, dass TYPO3 eine korrigierte Version veröffentlicht. Bis dahin kann nur empfohlen werden, den Zugriff auf das Backend nur besonders vertrauenswürdigen Mitarbeitern zu gewähren, da die Rechteverwaltung von TYPO3 umgangen werden kann.
Der Eingang unseres Hinweises auf die Sicherheitslücken wurde uns am 27. Mai auch bestätigt – ein Patch wurde dann am 30.07.2013 veröffentlicht. Dieser korrigiert zumindest die schwersten Fehler, so dass es nun nicht mehr möglich ist, Dateien nach .php oder .htaccess umzubenennen oder diese Dateien zu speichern. Leider sind durch den Patch noch nicht alle Angriffsvektoren behoben. So werden teilweise weiterhin Berechtigungen ignoriert und es lassen sich Sicherungsmaßnahmen umgehen. Die SySS GmbH hat diese Fehler am 31.07.2013 an das TYPO3-Security-Team gemeldet. Wegen dieser Schwachstellen empfehlen wir Nutzern von TYPO3 *dringend* den aktuellsten Patch einzuspielen. Zusätzlich empfiehlt die SySS GmbH, den Zugriff auf die betroffenen PHP-Dateien via Filter im Webserver einzuschränken und nur noch vertrauenswürdigen Administratoren zu ermöglichen.
Wir empfehlen dem TYPO3-Team, dass existierende Filter, Validierungen und Berechtigungskonzepte auch tatsächlich in allen Kontexten angewendet werden und die Bearbeitung von PHP-Dateien in der Standardinstallation verboten wird.
Die SySS GmbH hat den Fehler am 24. Mai 2013 gefunden und an das TYPO3-Security-Team weitergeleitet.
2013-05-24 - Sicherheitslücken entdeckt und an TYPO3 gemeldet
2013-05-27 - Sicherheitslücken werden durch das TYPO3-Team bestätigt
2013-06-17 - Auf Nachfrage bestätigt das TYPO3-Team, dass es sich um kritische Lücken handelt
2013-07-30 - Teilweise gepatchte Version von TYPO3 wird veröffentlicht. Der CVSS Base-Score wird mit 9.0 angegeben
2013-07-30 - Noch offene Lücken werden gemeldet
GPG E-Mail: sebastian.nerz@syss.de
Public Key: www.syss.de/fileadmin/dokumente/Materialien/PGPKeys/Sebastian_Nerz.asc Key ID: 0x9180FDB2 Key Fingerprint: 79DC 2CEC D18D F92F CBB4 AF09 D12D 26A4 9180 FDB2
Copyright Creative Commons - Attribution (by) - Version 3.0 URL: creativecommons.org/licenses/by/3.0/deed.en
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de | IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Ihr direkter Kontakt zu SySS +49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN +49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer
Direkter Kontakt
+49 (0)7071 - 40 78 56-0 oder anfrage@syss.de
IN DRINGENDEN FÄLLEN AUSSERHALB DER GESCHÄFTSZEITEN
+49 (0)7071 - 40 78 56-99
Als Rahmenvertragskunde wählen Sie bitte die bereitgestellte Rufbereitschaftsnummer