漏洞说明

Log4j 2.x版本存在一个严重的远程代码执行漏洞,被称为Log4Shell。为了修复该漏洞,首先要做的是将系统中所有使用 Log4j 的服务和应用程序升级到Log4j 2.17.1或更高版本。

临时缓解措施

方法一:设置系统属性

通过禁用 Log4j 的 JNDI(Java Naming and Directory Interface)功能来防止远程代码执行漏洞

对于java程序 在启动时添加以下JVM参数

-Dlog4j2.formatMsgNoLookups=true
这会禁用 Log4j 的消息格式化中的 lookups 功能,防止攻击者通过恶意字符串进行远程代码执行。

方法二:删除JndiLookup类

找到 Log4j 的 JAR 文件(例如 log4j-core-2.x.x.jar),并删除其中的 org/apache/logging/log4j/core/lookup/JndiLookup.class 文件

zip -d log4j-core-2.x.x.jar org/apache/logging/log4j/core/lookup/JndiLookup.class