该工具用于检测和修复 log4j log4shell 漏洞 (CVE-2021-44228),通过查找并从 .jar/.war/.ear 文件中移除 JndiLookup 类,零依赖且免费。 该工具已在以下环境中测试通过: - Linux 32位和64位 - Windows 32位和64位 - OpenBSD 64位
该工具使用 Go 编程语言编写,这意味着零依赖且拥有可随处运行的独立二进制文件。
在此下载二进制文件(Windows、Linux、Darwin、OpenBSD)https://github.com/nanitor/log4fix/releases/tag/v4.2.0
扫描文件是否存在漏洞
log4fix detect </path/to/file.war>
扫描文件是否存在漏洞并移除漏洞类。
log4fix fix </path/to/file.war> --overwrite
扫描单个目录是否存在漏洞。
log4fix scan </path/to/dir>
扫描多个目录是否存在漏洞。
log4fix scan </path/to/dir/1> </path/to/dir/2>
扫描目录是否存在漏洞并移除漏洞文件。注意,此命令会覆盖包含漏洞类的 war/ear/jar 文件。
log4fix scan </path/to/dir> --fix
扫描目录是否存在漏洞,并将找到的漏洞 jar/ear/war 文件写入指定的文件中。
log4fix scan </path/to/dir> --output </path/to/text/file.txt>
我们建议在覆盖文件之前对其进行备份。 在 Windows 上,可能需要在应用修复之前停止服务。 修复应用后,应重新启动服务。
go build
该功能与以下推荐的修复方法等效:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
区别在于,它还可以进入其他 .jar/.war/.ear 文件中查找内部的 log4j-core-*.jar 文件,并从中移除 JndiLookup 类。
当然,它可以在所有平台上运行。