我刚刚下载了 log4j-core-2.17.0.jar,当我打开它时,我看到“org/apache/logging/log4j/core/lookup/JndiLookup.class”仍然是 jar 的一部分。
关于 apache 安全性,他们提到了 -
实现以下缓解技术之一:
升级到 Log4j 2.3.1(适用于 Java 6)、2.12.3(适用于 Java 7)或 2.17.0(适用于 Java 8 及更高版本)。 否则,在 2.16.0 以外的任何版本中,您可以从类路径中删除 JndiLookup 类: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
我们是否必须下载 JAR,然后手动删除 jndi 条目?我认为在 2.16 和 2.17 log4j 中它已经被删除了。
请澄清
最佳答案
log4j2 2.17 仍然支持JNDI lookups ,所以它需要 JndiLookup.class。 2.17 修复了与允许代码执行 (2.15) 和拒绝服务 (2.16) 的 JNDI 查找相关的错误。从logstash中删除JndiLookup.class将远程执行灾难转换为类未找到异常。它仍然有可能破坏logstash (DOS),但仍然是一个更好的结果。
关于logging - JndiLookup.class 仍然是 log4j-core-2.17.0.jar 的一部分,这是预期的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70475427/