Ghostcat-Sicherheitslücke betrifft alle Tomcat-Versionen
26. Februar 2020
0 Min. LesezeitApache Tomcat ist eine Open-Source-Implementierung der Technologien Java Servlet, JavaServer Pages, Java Expression Language und Java WebSocket. Tomcat gehört zu den beliebtesten Java-HTTP-Webserver-Umgebungen und wurde 1998 veröffentlicht.
Ghostcat ist eine kritische Schwachstelle in Tomcat, die am 3. Januar von den Sicherheitsforschern von Chaitin Tech entdeckt wurde. Am 20. Februar veröffentlichte die China National Vulnerability Database (CNVD) eine Sicherheitsempfehlung zu diesem Problem unter der Nummer CNVD-2020-10487.
Die Schwachstelle wurde im Apache JServ Protocol (AJP) gefunden. Dieses Binärprotokoll ermöglicht es Angreifern, beliebige Dateien in Tomcat-Webanwendungsverzeichnissen zu lesen oder einzubinden.
AJP-Connector
Der AJP-Connector übernimmt die Kommunikation zwischen Tomcat und der Außenwelt. In Apache Tomcat ist der AJP-Connector standardmäßig für die Versionen 6 bis 9 auf Port 8009 aktiviert. Da CVE-2020-1938 eine Schwachstelle zum Lesen und Einbinden von Dateien im AJP-Connector von Tomcat ist, sind alle Versionen ohne den entsprechenden Patch betroffen.
Die Schwachstelle ermöglicht es Angreifern, den Inhalt von Webanwendungsdateien zu lesen. Wenn die Webanwendung Datei-Uploads zulässt, können Angreifer außerdem beliebige Dateien auf den Server hochladen, darunter schädliche JavaServer Pages (JSP), die die Remote-Codeausführung auf dem Server ermöglichen.

Lösung
Apache Tomcat hat bereits gepatchte Versionen für Tomcat 7, 8 und 9 veröffentlicht:
Die Chaitin-Forscher empfehlen, bei Verwendung des Patches außerdem ein geeignetes Secret zur Connector-Konfiguration in der Datei /conf/server.xml hinzuzufügen.
Wenn ein Patch nicht infrage kommt, gibt es laut den Chaitin-Forschern weitere Möglichkeiten, das Problem einzudämmen.
Wenn Sie den AJP-Connector nicht verwenden, können Sie dessen Deklaration in der Datei /conf/server.xml bedenkenlos auskommentieren oder löschen.
Wenn Sie den AJP-Connector verwenden und kein Update auf eine gepatchte Version möglich ist, fügen Sie ein Feld „requiredSecret“ mit einem sicheren, schwer zu erratenden Secret hinzu.
Spring Boot
Der aktuelle JVM Ecosystem Report zeigt, dass Spring Boot das meistgenutzte serverseitige Framework im Ökosystem ist. Spring Boot verwendet einen eingebetteten Webserver, wobei standardmäßig die eingebettete Tomcat-Version zum Einsatz kommt. Es ist möglich, dass spring-boot-starter-web ein anfälliges eingebettetes Apache-Tomcat-Paket in Ihr System eingebunden hat.
Bearbeitet am 2. März 2020
Gut zu wissen: Spring Boot erstellt standardmäßig keinen AJP-Connector. Das bedeutet, dass Angreifer diese Schwachstelle mit den Standardeinstellungen nicht ausnutzen können. Spring Boot lässt sich jedoch anders konfigurieren. Prüfen Sie anhand Ihrer Konfiguration, ob Sie betroffen sind, und ergreifen Sie geeignete Maßnahmen.
Starten Sie mit Capture-the-Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Challenges lösen.
