Apache Log4j2是一款优秀的Java日志框架,与Logback平分秋色,大量主流的开源框架采用了Log4j2,像Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。所以,这样一个底层框架出现问题,影响面可想而知。
漏洞信息:Apache Log4j 2.15.0-rc1 版本存在漏洞绕过,需及时更新至 Apache Log4j 2.15.0-rc2 版本。
影响范围:2.0 <= Apache log4j2 <= 2.14.1。
补救方案
方案一:升级版本,发布系统;
方案二:临时补救:
-
修改JVM参数,设置
-Dlog4j2.formatMsgNoLookups=true
。 -
在涉及漏洞的项目的类路径(classpath)下增加
log4j2.component.properties
配置文件并增加配置项log4j2.formatMsgNoLookups=true
。 -
将系统环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true。
攻击原理
攻击伪代码示例:
import org.apache.log4j.Logger;
import java.io.*;
import java.sql.SQLException;
import java.util.*