logging - JndiLookup.class 仍然是 log4j-core-2.17.0.jar 的一部分,这是预期的吗?

标签 logging log4j logstash log4j2

我刚刚下载了 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/

相关文章:

logging - Logstash 输入文件 - 从桌面文件读取

node.js - 当logstash服务器断开连接时,nodejs中出现ECONNREFUSED错误

scala - 如何更改spark中的日志级别?

java - 将不同线程中的日志消息分组

java - 远程管理接口(interface) : How threads are created?

java - 如何创建两个日志文件

linux - Logstash 未启动。错误 : "Could not start TCP server: Address in use"

.net - CRUD 应用程序日志记录

string - logging.debug 的多个参数

java - Log4J2 AsyncLogger 正在以高并发填满 LMAX disruptor 的环形缓冲区