
Однобинарный сканер для CVE-2021-44228 (Log4Shell), который обнаруживает уязвимые версии log4j в файлах JAR/WAR/EAR и применяет патчи для смягчения последствий путем удаления JndiLookup.class.

log4j2-scan — это однодвоичный инструмент командной строки для сканирования уязвимости CVE-2021-44228 и установки патча. Также поддерживает сканирование и исправление вложенных JAR-файлов.
Просто запустите log4j2-scan.exe или log4j2-scan с путём к целевой директории.
Использование
Logpresso CVE-2021-44228 Vulnerability Scanner 1.3.1 (2021-12-15)
Usage: log4j2-scan [--fix] target_path
--fix
Backup original file and remove JndiLookup.class from JAR recursively.
--force-fix
Do not prompt confirmation. Don't use this option unless you know what you are doing.
--trace
Print all directories and files while scanning.
--exclude [path_prefix]
Exclude specified paths. You can specify multiple --exclude [path_prefix] pairs
--exclude-config [file_path]
Specify exclude path list in text file. Paths should be separated by new line. Prepend # for comment.
--all-drives
Scan all drives on Windows
--drives c,d
Scan specified drives on Windows. Spaces are not allowed here.
На Windows
log4j2-scan [--fix] target_path
На Linux
./log4j2-scan [--fix] target_path
На UNIX (AIX, Solaris и т.д.)
java -jar logpresso-log4j2-scan-1.3.1.jar [--fix] target_path
Если вы добавите опцию --fix, программа скопирует уязвимый оригинальный JAR-файл в файл .bak и создаст новый JAR-файл без записи org/apache/logging/log4j/core/lookup/JndiLookup.class. В большинстве сред функция JNDI lookup не используется. Однако вы используете эту опцию на свой страх и риск. Перед применением патча необходимо остановить все запущенные процессы JVM. После исправления перезапустите затронутые процессы JVM.
Если вы хотите автоматизировать патч, используйте опцию --force-fix. С этой опцией программа больше не будет запрашивать подтверждение.
Тег (mitigated) будет отображаться, если запись org/apache/logging/log4j/core/lookup/JndiLookup.class удалена из JAR-файла.
Если вы добавите опцию --trace, программа будет выводить все посещённые директории и файлы. Используйте эту опцию только для отладки.
На Windows:
CMD> log4j2-scan.exe D:\tmp
[*] Found CVE-2021-44228 vulnerability in D:\tmp\elasticsearch-7.16.0\bin\elasticsearch-sql-cli-7.16.0.jar, log4j 2.11.1
[*] Found CVE-2021-44228 vulnerability in D:\tmp\elasticsearch-7.16.0\lib\log4j-core-2.11.1.jar, log4j 2.11.1
[*] Found CVE-2021-44228 vulnerability in D:\tmp\flink-1.14.0\lib\log4j-core-2.14.1.jar, log4j 2.14.1
[*] Found CVE-2021-44228 vulnerability in D:\tmp\logstash-7.16.0\logstash-core\lib\jars\log4j-core-2.14.0.jar, log4j 2.14.0
[*] Found CVE-2021-44228 vulnerability in D:\tmp\logstash-7.16.0\vendor\bundle\jruby\2.5.0\gems\logstash-input-tcp-6.2.1-java\vendor\jar-dependencies\org\logstash\inputs\logstash-input-tcp\6.2.1\logstash-input-tcp-6.2.1.jar, log4j 2.9.1
[*] Found CVE-2021-44228 vulnerability in D:\tmp\solr-7.7.3\solr-7.7.3\contrib\prometheus-exporter\lib\log4j-core-2.11.0.jar, log4j 2.11.0
[*] Found CVE-2021-44228 vulnerability in D:\tmp\solr-7.7.3\solr-7.7.3\server\lib\ext\log4j-core-2.11.0.jar, log4j 2.11.0
[*] Found CVE-2021-44228 vulnerability in D:\tmp\solr-8.11.0\contrib\prometheus-exporter\lib\log4j-core-2.14.1.jar, log4j 2.14.1
[*] Found CVE-2021-44228 vulnerability in D:\tmp\solr-8.11.0\server\lib\ext\log4j-core-2.14.1.jar, log4j 2.14.1
Scanned 5047 directories and 26251 files
Found 9 vulnerable files
Completed in 0.42 seconds
Выполняется в 5 шагов:
META-INF/maven/org.apache.logging.log4j/log4j-core/pom.properties в JAR-файле.Если у вас есть вопросы или проблемы, создайте issue в этом репозитории.