- Fixed bug:
--fix
command in version 1.19 and 1.20 could corrupt.jar
archives.
- Performance improvement via multithreaded scanning
- Fixed searching within extracted log4j folders on Windows
- Removed mmap access due to incompatibility with Windows.
- Code readability and performance improvments
- Added parameter
--file-log [LOGFILE]
to enable logging to log file, default is log4shell-finder.log. - Added parameter
--progress [SEC]
to enable progress reporting every SEC seconds, default is 10 seconds.
- Reworked status reporting, now listing all CVEs relevant for specific version of log4j.
- Added
--no-error
to suppress file system error messages (e.g. Access Denied, corrupted zip archive). - Suppressed
STRANGE
status reporting by default -STRANGE
are mainly source packages, that do not contain class binaries. - Added
--strange
to report alsoSTRANGE
instances.
- Fixed detection of 2.12.3 extracted
- Added support for versions 2.3.2, 2.12.4 and 2.17.1
- Reporting actual CVEs instead of VULNERABLE or NOTOKAY status
- Added additional possible "JAR" file extensions.
- Fixed bug:
--fix
command could corrupt.jar
archives.
- minor fix: status for 2.12.2 as
NOTOKAY
- added
--fix
parameter with attempt to fix the vulnerability by renamingJndiLookup.class
toJndiLookup.vulne
. At the moment it can handle.class
files on disk and within 1st level archives. Class cannot be renamed in archives embeded in other archives (nested).
- added detection of 2.12.3 and 2.3.1
- added option to disable default logging to file
--no-file-log
- added host information to the json file
- possibility to save output to csv with
--csv-out
- if you omit file names for
--json-out
or--csv-out
then the file name has a form: hostname_ipaddress.<csv|json>
- added checks for JMSAppender.class within log4j v1.x instances
- fixed bug where
--exclude-dirs
skipped the given directory, but not it's subdirectories
- added option
--same-fs
to skip mounted volumes while scanning. - findings can be saved in json format with
--json-out <filename>
- skip folder with
--exclude-dirs DIR [DIR ...]
parameter - use
-
as folder name to source folder names from stdin, e.g.echo "/home" | test_log4shell.py -
- handle elastic's SHADED_CLASS_EXTENSION ".esclazz"
- get exact log4j version from pom.properties