Apache Log4j2 RCE 命令執(zhí)行漏洞預(yù)警及修復(fù)方案

 漏洞資訊     |      2021-12-11

一、   漏洞描述

Apache Log4j2是一個(gè)基于Java的日志記錄工具。該工具重寫了Log4j框架,并且引入了大量豐富的特性。該日志框架被大量用于業(yè)務(wù)系統(tǒng)開發(fā),用來記錄日志信息。

由于Apache Log4j2某些功能存在遞歸解析功能,攻擊者可直接構(gòu)造惡意請求,?需進(jìn)?特殊配置,即可觸發(fā)遠(yuǎn)程代碼執(zhí)?。

二、   漏洞詳情

CVE-2021-44228 : Apache Log4j2 RCE 命令執(zhí)行漏洞

CVE: CVE-2021-44228  

組件: Apache log4j2

漏洞類型: 代碼問題

影響: 遠(yuǎn)程代碼執(zhí)行

簡述: Apache Log4j2廣泛地應(yīng)用在中間件、開發(fā)框架、Web應(yīng)用中。漏洞危害性高,涉及用戶量較大,導(dǎo)致漏洞影響力巨大。

三、   影響版本

受影響組件

影響產(chǎn)品或系統(tǒng)版本

安全版本

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.  項(xiàng)目中直接使用Apache Log4j2:

升級Apache Log4j2所有相關(guān)應(yīng)用到最新的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等,暫未發(fā)布最新修復(fù)版本。

只能使用臨時(shí)方案進(jìn)行修復(fù)

 在jvm啟動參數(shù)中添加

-Dlog4j2.formatMsgNoLookups=true

                                             

 系統(tǒng)環(huán)境變量中配置

FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true

③項(xiàng)目中創(chuàng)建log4j2.component.properties文件,文件中增加配置log4j2.formatMsgNoLookups=true

④部署第三方防火墻產(chǎn)品。