
Escáner del sistema de archivos que detecta versiones vulnerables de Log4J (CVE-2021-44228, CVE-2021-45046) mediante el análisis de clases Java compiladas, incluyendo archivos anidados. Funciona en Linux, Windows y Mac.

Escáner que detecta versiones vulnerables de Log4J para ayudar a los equipos a evaluar su exposición a CVE-2021-44228 (CRÍTICA), CVE-2021-45046, CVE-2021-45105 y CVE-2021-44832. Puede buscar instancias de Log4J examinando cuidadosamente el sistema de archivos completo, incluyendo todas las aplicaciones instaladas. Es capaz de encontrar instancias de Log4J ocultas varias capas de profundidad. Funciona en Linux, Windows y Mac, ¡y en cualquier otro lugar donde se ejecute Java!
log4j-core. ¿Qué Pasa Con log4j-api?Actualmente reporta las versiones log4j-core 2.3.2, 2.12.4 y 2.17.1 como _SAFE_, 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 y 2.17.0 como _OKAY_ y todas las demás versiones como _VULNERABLE_ (aunque reporta las versiones anteriores a 2.0-beta9 como _POTENTIALLY_SAFE_). Reporta versiones antiguas de log4j-1.x como _OLD_.
Puede detectar correctamente log4j dentro de jars/wars ejecutables de Spring Boot, dependencias mezcladas en uber jars, jars sombreados (shaded), e incluso archivos jar expandidos simplemente sentados sin comprimir en el sistema de archivos (también conocido como *.class).
Actualmente mantenemos una colección de muestras de log4j que usamos para pruebas.
java -jar log4j-detector-2021.12.29.jar ./samples
-- github.com/mergebase/log4j-detector v2021.12.29 (by mergebase.com) analyzing paths (could take a while).
-- Note: specify the '--verbose' flag to have every file examined printed to STDERR.
false-hits/log4j-core-2.12.2.jar contains Log4J-2.x == 2.12.2 _OKAY_
false-hits/log4j-core-2.12.3.jar contains Log4J-2.x == 2.12.3 _OKAY_
false-hits/log4j-core-2.12.4.jar contains Log4J-2.x == 2.12.4 _SAFE_
false-hits/log4j-core-2.15.0.jar contains Log4J-2.x == 2.15.0 _OKAY_
false-hits/log4j-core-2.16.0.jar contains Log4J-2.x == 2.16.0 _OKAY_
false-hits/log4j-core-2.17.0.jar contains Log4J-2.x == 2.17.0 _OKAY_
false-hits/log4j-core-2.17.1.jar contains Log4J-2.x >= 2.17.1 _SAFE_
false-hits/log4j-core-2.3.1.jar contains Log4J-2.x == 2.3.1 _OKAY_
false-hits/log4j-core-2.3.2.jar contains Log4J-2.x == 2.3.2 _SAFE_
true-hits/log4j-core-2.0-beta9.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.10.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.10.0.zip contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.11.2.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.12.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.12.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.14.0.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.14.1.jar contains Log4J-2.x >= 2.10.0 _VULNERABLE_
true-hits/log4j-core-2.2.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.3.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.4.1.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.4.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
true-hits/log4j-core-2.9.1.jar contains Log4J-2.x >= 2.0-beta9 (< 2.10.0) _VULNERABLE_
old-hits/log4j-1.1.3.jar contains Log4J-1.x <= 1.2.17 _OLD_
old-hits/log4j-1.2.17.jar contains Log4J-1.x <= 1.2.17 _OLD_
old-hits/log4j-core-2.0-beta2.jar contains Log4J-2.x <= 2.0-beta8 _POTENTIALLY_SAFE_ (Did you remove JndiLookup.class?)
_VULNERABLE_ -> Necesitas actualizar o eliminar este archivo.
_OKAY_ -> Reportamos esto para las versiones de Log4J 2.3.1, 2.12.2, 2.12.3, 2.15.0, 2.16.0 y 2.17.0. Recomendamos actualizar a 2.17.1.
_SAFE_ -> Actualmente solo reportamos esto para las versiones de Log4J 2.3.2, 2.12.4 y 2.17.1 (y superiores).
_OLD_ -> Estás a salvo de CVE-2021-44228, pero deberías planificar una actualización porque Log4J 1.2.x ha llegado al final de su vida útil (EOL) desde hace 7 años y tiene varias vulnerabilidades conocidas.
_POTENTIALLY_SAFE_ -> El archivo "JndiLookup.class" no está presente, ya sea porque tu versión de Log4J es muy antigua (anterior a 2.0-beta9), o porque alguien ya eliminó este archivo. Asegúrate de que fue alguien de tu equipo o empresa quien eliminó "JndiLookup.class" si ese es el caso, porque se sabe que los atacantes eliminan este archivo ellos mismos para evitar que otros atacantes competidores obtengan acceso a sistemas comprometidos.
java -jar log4j-detector-2021.12.29.jar
Usage: java -jar log4j-detector-2021.12.29.jar [--verbose] [--json] [--stdin] [--exclude=X] [paths to scan...]
--json - Output STDOUT results in JSON. (Errors/warning still emitted to STDERR)
--stdin - Read STDIN for paths to explore (one path per line)
--exclude=X - Where X is a JSON list containing full paths to exclude. Must be valid JSON.
Example: --exclude='["/dev", "/media", "Z:\TEMP"]'
Exit codes: 0 = No vulnerable Log4J versions found.
1 = At least one legacy Log4J 1.x version found.
2 = At least one vulnerable Log4J version found.
About - MergeBase log4j detector (version 2021.12.29)
Docs - https://github.com/mergebase/log4j-detector
(C) Copyright 2021 Mergebase Software Inc. Licensed to you via GPLv3.
git clone https://github.com/mergebase/log4j-detector.git
cd log4j-detector/
mvn install
java -jar target/log4j-detector-latest.jar
Mantenemos una colección de muestras de log4j aquí: https://github.com/mergebase/log4j-samples
GPL version 3.0
El compilador de Java almacena literales de cadena directamente en los archivos *.class compilados. Si log4j-detector detecta un archivo llamado "JndiManager.class" en tu sistema de archivos, examina ese archivo en busca de esta cadena: "Invalid JNDI URI - {}". Resulta que ese literal de cadena específico solo está presente en la versión parcheada de Log4J (versión 2.15.0). Cualquier versión de Log4J que no tenga esa cadena es vulnerable.