为了解决客户端标记的CVE-2019-17571,我正在尝试将我们基于 jfreechart 的 Rails 应用程序中使用的 Log4j 1.2.x 升级到 Log4j 2(按照此处的说明进行操作)。但是,我不知道哪个 Java 库仍在使用旧的 Log4j 1.x 导入。这是我在 Rails 日志中看到的错误(Java 图表应用程序是通过RJB加载的):
$ tail -f production_log.2020-03-29
FATAL 2020-03-29 16:58:49 30512 NoClassDefFoundError (org/apache/log4j/Logger):
lib/chart_interface.rb:24:in 'method_missing'
lib/chart_interface.rb:24:in 'createChart'
app/controllers/dash_controller.rb:565:in 'resources_info'
这是找出哪些第三方 Java 库正在使用旧的 Log4j 1.x 导入的好方法吗?
$ ls -ltr
total 8756
-rw-r----- 1 root ainet 391430 Oct 5 02:16 log4j-1.2.15.jar.old
-rwxr-x--- 1 root ainet 1801249 Mar 26 03:15 wig.jar
-rwxr-x--- 1 root ainet 288911 Mar 26 03:15 tcommon-2.1.jar
-rwxr-x--- 1 root ainet 657841 Mar 26 03:15 postgresql-9.4-1202.jdbc42.jar
-rwxr-x--- 1 root ainet 1702810 Mar 26 03:15 log4j-core-2.13.1.jar
-rwxr-x--- 1 root ainet 292243 Mar 26 03:15 log4j-api-2.13.1.jar
-rwxr-x--- 1 root ainet 1425744 Mar 26 03:15 jfreechart-1.0.13.jar
-rwxr-x--- 1 root ainet 62103 Mar 26 03:15 commons-pool-1.3.jar
-rwxr-x--- 1 root ainet 121757 Mar 26 03:15 commons-dbcp-1.2.2.jar
-rw-r--r-- 1 ainet ainet 330507 Mar 26 03:50 jcommon-1.0.24.jar
$ grep -R apache\.log4j
Binary file log4j-1.2.15.jar.old matches
唯一的打击是在旧的 jar 文件中,但RJB正在抱怨NoClassDefFoundError
.