Apache Log4j2 RCE 命令执行漏洞预警及修复方案

 漏洞资讯     |      2021-12-11

一、   漏洞描述

Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息。

由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,需进特殊配置,即可触发远程代码执

二、   漏洞详情

CVE-2021-44228 : Apache Log4j2 RCE 命令执行漏洞

CVE: CVE-2021-44228  

组件: Apache log4j2

漏洞类型: 代码问题

影响: 远程代码执行

简述: Apache Log4j2广泛地应用在中间件、开发框架、Web应用中。漏洞危害性高,涉及用户量较大,导致漏洞影响力巨大。

三、   影响版本

受影响组件

影响产品或系统版本

安全版本

Apache log4j2

Apache Struts2

暂无

Apache log4j2

Apache Solr

暂无

Apache log4j2

Apache Druid

暂无

Apache log4j2

Apache Flink

暂无

Apache log4j2

Spring-boot-strater-log4j2

暂无

Apache log4j2

/

四、   安全版本

2.0 <= Apache log4j2 <= 2.15.0-rc1

五、  安全建议

1.  项目中直接使用Apache Log4j2:

升级Apache Log4j2所有相关应用到最新的log4j-2.15.0-rc2版本,地址 :

https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

Apache Maven 版本

修改pom.xml

<dependencies>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.15.0-rc2</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.15.0-rc2</version>

</dependency>

</dependencies>

Gradle 版本

修改build.gradle

dependencies {

compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.15.0-rc2'

compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.15.0-rc2'

}

2.  框架二次加载Apache Log4j2

截止目前,第三方框架中使Apache Log4j2的,srping-boot、Apache Struts2等,暂未发布最新修复版本。

只能使用临时方案进行修复

 在jvm启动参数中添加

-Dlog4j2.formatMsgNoLookups=true

                                             

 系统环境变量中配置

FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true

③项目中创建log4j2.component.properties文件,文件中增加配置log4j2.formatMsgNoLookups=true

④部署第三方防火墙产品。