Vorgestern kam ja diese Sicherheitslücke auf, die gestern überall die Runde machte. Kurz zusammengefasst: Wenn man bestimmte strings mit log4j logged, dann wird code von einer (potentiell vom Angreifer kontrollierten) website geladen und ausgeführt.
Das ist natürlich ein totaler WTF-Bug: Warum sollte ein Logging-Framework überhaupt den Inhalt der Logtexte parsen, anstatt einfach nur zu prüfen, ob das gültiges encoding ist? Und warum sollte es willkürliche URLs aufrufen und den Code dort ausführen?
Meine Vermutung: Featuritis. „Was können wir noch für tolle Features einbauen? Vielleicht JNDI-support? Braucht zwar niemand, aber damit haben wir ein Feature, das sonst niemand hat! What could possibly go wrong?
Jedenfalls ist log4j das logging-Framework in Java. Wenn du einen Java-basierten Webservice betreibst, benutzt du vermutlich log4j. In einem meiner alten Projekte haben wir auch log4j verwendet, auch wenn wir zum eigentlichen loggen eine andere Bibliothek nutzten, die log4j nur als Backend verwendet.
Kurz: log4j ist überall. Zum Beispiel irgendwo im tech-stack unserer beliebten Ingenuity-Helikopterdrohne auf dem Mars. Und der Exploit ist nicht einmal schwierig durchzuführen.
Selbst minecraft ist betroffen. Als mir das klar wurde, habe ich erst einmal meinen Server heruntergefahren und darf den jetzt fixen. Glücklicherweise wurde gestern auch direkt ein Fix bereitgestellt.
Jetzt muss ich natürlich den Server ein bisschen im Auge behalten. Der Minecraftserver lief natürlich mit begrenzten Rechten, trotzdem: Wer einen Spamversandt oder einen bitcoin-Miner auf meinem Server installieren will, dem reicht das.
Also: fleißig Updates installieren (am besten gestern).