Minecraft, Apple, Steam: Schwere Sicherheitslücke in Logging-Library gefährdet zahlreiche Dienste
Hacker:innen haben eine schwerwiegende Sicherheitslücke in der Java-Logging-Library Log4j entdeckt und den zugehörigen Exploit-Code auf GitHub veröffentlicht. Die Bibliothek kommt in zahllosen Web-Anwendungen zum Einsatz, Schätzungen zufolge wird Log4j in 95 Prozent aller Java-Projekte verwendet. Die Schwachstelle auszunutzen, ist offenbar nicht besonders schwierig.
Zuerst berichtet wurde von der Schwachstelle in Websites, die sich an Minecraft-Spieler:innen richten. Die Websites warnten vor Hacker:innen, die potenziell Schadcode auf Servern oder Clients mit der Java-Version des Spiels ausführen könnten. Ausnutzen könnten Hacker:innen die Lücke, indem sie die Kontrolle über Log-Nachrichten erlangten. Ausreichend hierfür seien geloggte Chat-Nachrichten.
Laut den Security-Expert:innen von Luna-Sec müssen für einen erfolgreichen Exploit der Lücke neben einem Server mit einer anfälligen Version der Logging-Library nur zwei Bedingungen erfüllt sein: ein Endpunkt mit einem beliebigen Protokoll (etwa HTTP oder TCP), das es Angreifenden ermöglicht, den Exploit-String zu senden, und eine Protokollanweisung, die die Zeichenkette aus dieser Anfrage protokolliert. Durch die Protokollanweisung wird via Java-API JNDI und das Netzwerkprotokoll LDAP auf eine Serverinstanz mit weiterem Schadcode verwiesen. Möglich sind die Angriffe offenbar, weil dabei nicht geprüft wird, ob es sich bei dem aufgerufenen Server um einen eigenen oder um einen unter fremder Kontrolle handelt.
Wer ist betroffen?
Aufgrund der weiten Verbreitung der Logging-Bibliothek ist es sehr wahrscheinlich, dass die Mehrheit der Java- und Kotlin-Projekte betroffen ist. Im Social-News-Forum Hacker News berichten Nutzer:innen, dass auch Dienste wie Steam oder Apple iCloud anfällig für die Lücke sein könnten. Das Ausmaß betroffener Dienste ist derzeit noch nicht absehbar, potenziell aber sehr groß, da Log4j als Quasi-Standard unter den Logging-Libraries gilt.
Auch wer kein Java verwendet, könnte betroffen sein
Es besteht zudem die Möglichkeit, dass auch Web-Anwendungen, die nicht in Java geschrieben sind, dafür aber fertige Java-Dependencies haben, betroffen sein könnten.
HD Moore, Gründer und CTO der Netzwerkerkennungsplattform Rumble, sagte gegenüber Ars Technica, dass die Lücke gerade für Umgebungen, die an ältere Java-Laufzeiten gebunden sind, eine Rolle spiele: Betroffen seien Web-Frontends für verschiedene Netzwerkanwendungen, ältere Anwendungsumgebungen, die Legacy-API verwenden, und Minecraft-Server, die aus Gründen der Mod-Kompatibilität auf ältere Versionen angewiesen seien.
Mittlerweile gibt es einen CVE
Inzwischen gibt es einen CVE-Report dazu, geführt wird die Schwachstelle unter der Nummer CVE-2021-44228. Laut dem CVE-Eintrag wurde sie in Version 2.15 mittlerweile behoben. Als kurzfristigen Fix gibt es zudem die Empfehlung, die JNDI-Funktionalität in Log4 auszuschalten. Eine weitere Möglichkeit ist es, log4j2.formatMsgNoLookups = true
zu setzen. Diese Lösung funktioniert allerdings erst ab V 2.10.0 und höher. In der neu veröffentlichten Version 2.15 ist dieses Verhalten ohnehin der Default. Wer eine Version älter > 2.10 verwendet und ein Upgrade auf 2.15 nicht infrage kommt, findet via Luna-Sec-Blogpost einen passenden Fix. Testen ob die eigene Anwendung betroffen ist, können Entwickler:innen beispielsweise mithilfe dieses Python-Skripts.
Entdeckt wurde die Schwachstelle von Chen Zhaojun, einem IT-Sicherheitsexperten aus dem Security-Team Alibabas.