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

616 阅读2分钟

漏洞名称: Apache Log4j2远程代码执行漏洞

组件名称: Apache Log4j2

截止2021年12⽉10⽇,受影响的Apache log4j2版本:

2.0≤Apache Log4j<=2.15.0-rc1

漏洞类型: 远程代码执行

综合评价:

<利用难度>:容易,无需授权即可远程代码执行。

<威胁等级>:高危,能造成远程代码执行。

漏洞详情

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

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

影响范围

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

截止2021年12⽉10日,受影响的Apache log4j2版本:

2.0 <= Apache log4j2 <= 2.15.0-rc1

受影响的Java框架:

.

【点击获取学习资料】

  • 渗透工具
  • 技术文档、书籍 最新大厂面试题目及答案
  • 视频教程
  • 应急响应笔记
  • 学习思路构图等等

修复建议

1、项目中直接使用Apache Log4j2

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

github.com/apache/logg…

  • Apache Maven 版本

修改pom.xml

[AppleScript] 纯文本查看 复制代码

<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

[AppleScript]   纯文本查看   复制代码

?

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

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

最后——私信回复“资料”