Log4j2: automatisch JAR/WAR/EAR-Files nach betroffenen Versionen durchsuchen (CVE-2021-44228 und CVE-2021-45046)

Nach Bekanntwerden einer kritischen Log4j2-Sicherheitslücke patchen weltweit DevOps und Sysadmins deren Anwendungen mit integrierter Log4j2-Library.

Grundsätzlich würde man eine alte Log4j2-Version anhand des Dateinamens des JAR-Files (z.B. log4j-api-2.14.0.jar) erkennen. Wenn es aber zu Umbenennungen oder zu „merged JAR-Files“ gekommen ist, führt die Dateinamen-Suche ins Leere.

Abhilfe schafft u.a. der CVE-2021-44228-Scanner auf Github:

>> Download: https://github.com/logpresso/CVE-2021-44228-Scanner

Update vom 15.12.2021

Der Patch in der Log4j2-Version 2.15, der für CVE-2021-44228 eine erste Abhilfe, war unvollständig, und so kann im Sonderfall weiterhin eine Attacke stattfinden:

The fix to address CVE-2021-44228 in Apache Log4j 2.15.0 was incomplete in certain non-default configurations. This could allow attackers with control over Thread Context Map (MDC) input data when the logging configuration uses a non-default Pattern Layout with either a Context Lookup (for example, $${ctx:loginId}) or a Thread Context Map pattern (%X, %mdc, or %MDC) to craft malicious input data using a JNDI Lookup pattern resulting in a denial of service (DOS) attack.

Quelle: https://github.com/advisories/GHSA-7rjr-3q55-vv33

Die Version 2.16 löst auch dieses Problem, und damit CVE-2021-45046.

Update vom 20.12.2021

Es gibt eine weitere Version 2.17, die einen Sonderfall, der in Version 2.16 noch übersehen wurde, nun ebenfalls abdeckt.

Image Credits: Bug icons created by Freepik – Flaticon