【问题标题】:How to build log4j2 2.8.2 with the latest fixes如何使用最新修复构建 log4j2 2.8.2
【发布时间】:2022-01-21 15:32:33
【问题描述】:

我正在针对 CVE-2021-44228 和其他类似的 log4j 发现修复我的 Jetty java 应用程序。

我尝试升级到 2.17.0,但并非所有应用程序都可以升级,因为其中一些依赖于旧版本的 Jetty,由于多 java-release jars 而无法与新 log4j 一起使用(请参阅Error scanning entry META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class with jetty and log4j 2.9.1? )

显然,我正在努力将这些应用程序升级到 Jetty 的最新版本,但这涉及很多。这需要一些时间。

所以我被困在手动修复 log4j 2.8.2 版本(不是多发布格式 jar 的最新版本)。

我已经修复了 log4j 文件 {nolookups} 并添加了命令行参数来禁用 JNDI 查找。

我知道我可以删除有助于解决主要问题的 JNDILookup.class。

是否有正式的 2.8.2 版本的修复版本可以用于我们可以使用的任何地方?

【问题讨论】:

  • 如何将 Slf4j 与您当前的 log4j 一起使用,然后用 logback 替换 log4j,例如,或者可以在您的设置中升级到最新版本的其他库?因为即使您手动修复 cve-2021-44228,也会有更多漏洞需要您手动修补,最终您将花费大量时间

标签: java log4j jetty cve-2021-44228


【解决方案1】:

如果您在那些旧应用程序上还停留在 Java 8 上,那么只需重新打包这些多版本 jar 文件没有它们的 META-INF/versions JAR 文件目录。

如果您使用 Java 9 或更高版本,那么您会被那些 META-INF/versions JAR 文件目录困住,并且此建议不适合您。

【讨论】:

  • 我确实尝试过,但它似乎失败了,在 log4j + jetty 的内部深处出现了一些错误。但我并没有花太多时间在上面。我会再试一试。
猜你喜欢
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 2019-09-26
  • 2019-10-05
  • 1970-01-01
相关资源
最近更新 更多