log4j jndi 漏洞解决办法
受影响版本:从 2.0-beta9 到 2.12.1 和 2.13.0 到 2.15.0 的所有版本
Log4j 1.x 不受此漏洞影响。
Log4j 2.x 通过以下方法之一缓解:
- Java 8(或更高版本)用户应升级到 2.16.0 版。
- 从类路径中删除 JndiLookup 类: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
请注意,只有 log4j-core JAR 文件受此漏洞影响。仅使用 log4j-api JAR 文件而不使用 log4j-core JAR 文件的应用程序不受此漏洞的影响。
最安全的做法是将 Log4j 升级到安全版本,或者从 log4j-core jar 中删除 JndiLookup 类
在 2.12.2 版本中,消息查找功能已完全删除。配置中的查找仍然有效。此外,Log4j 现在默认禁用对 JNDI 的访问。 JNDI 查找现在将返回一个常量值。此外,Log4j 现在默认将协议限制为只有 java。
在 2.16.0 版本中,消息查找功能已完全删除。配置中的查找仍然有效。此外,Log4j 现在默认禁用对 JNDI 的访问。现在需要显式启用配置中的 JNDI 查找。此外,Log4j 现在默认将协议限制为仅 java、ldap 和 ldaps,并将 ldap 协议限制为仅访问 Java 原始对象。需要明确允许本地主机以外的主机。