一、 漏洞描述
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)品。