log4j2的漏洞修复
简介
Log4j是Apache的一个开源项目,通过使用Log4j,可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
Apache Log4j2是Log4j的升级版本,该版本与之前的log4j1.x相比带来了显著的性能提升,并且修复一些存在于Logback中固有的问题的同时提供了很多在Logback中可用的性能提升,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。
漏洞评级和影响版本
Apache Log4j 远程代码执行漏洞 严重
影响的版本范围:Apache Log4j 2.x <= 2.14.1
jdk与log4j2的版本对应关系
Log4j2.12.1是支持Java 7的最后2.x版本,Log4j2.3是支持Java 6的最后2.x版本,Log4j团队不再提供对Java 6或7的支持。
影响组件
- srping-boot-strater-log4j2
- ApacheSolr
- Apache Flink
- Apache Druid
- Apache Struts2
修复措施
查看公司项目依赖关系
将log4j2版本升级主要涉及为log4j-core,其他包也一起升级吧。
- log4j-1.2-api-2.15.0.jar
- log4j-core-2.15.0.jar
- log4j-api-2.15.0.jar
- log4j-jcl-2.15.0.jar
- log4j-slf4j-impl-2.15.0.jar
- log4j-jul-2.15.0.jar
- log4j-1.2.17.jar
下载地址
https://logging.apache.org/log4j/2.x/download.html
临时方案
- 设置配置参数:log4j2.formatMsgNoLookups=True
- 修改JVM参数:-Dlog4j2.formatMsgNoLookups=true
- 修改系统环境变量:FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS设置为true
- 禁止 log4j2 所在服务器外连
- 升级jdk版本至6u211 / 7u201 / 8u191 / 11.0.1以上