组件介绍
Apache Log4j2是一款Java日志框架,是Log4j 的升级版。可以控制每一条日志的输出格式。通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。由于其易用性被广泛集成于各种服务器和组件中。
漏洞描述
2021年12月19日,深信服安全团队监测到一则Apache Log4j2组件存在拒绝服务漏洞的信息,漏洞编号:CVE-2021-45105,漏洞威胁等级:高危。
该漏洞是由于Apache Log4j2配置了非默认的带有Context Lookup的Pattern Layout场景(例如:$${ctx:loginId}),攻击者可利用该漏洞在未授权的情况下,构造恶意数据执行拒绝服务攻击,最终造成服务器拒绝服务。
影响范围
Apache Log4j2广泛地应用在中间件、开发框架、web应用中。漏洞涉及用户量较大。
目前受影响的Apache Log4j2版本:
2.0.0 ≤ Apache Log4j < 2.17.0
注:Apache Log4j 1.x 不受此漏洞影响。
如何检测组件版本
方案一
全盘搜索log4j,如果存在log4j-core-{version}.jar
则用户可能受漏洞影响。
方案二
如果项目是由maven编译的(一般在项目根目录下会有pom.xml)
打开pom.xml文件,如图:
在此文件中搜索log4j-core,如果可以搜索到关键字,并且
如以上检索均未发现结果,不能够完全下结论一定没有使用Apache Log4j2组件。如果服务器有使用以下中间件的(Apache Log4j2组件通常会嵌套在以下中间件中使用),仍要联系业务系统的开发或维护厂商进行判断是否有使用Apache Log4j2组件。
Apache Log4j2拒绝服务漏洞可能的受影响中间件包括但不限于如下:
Apache Struts2
Apache Solr
Apache Flink
Apache Druid
ElasticSearch
Dubbo
Apereo CAS
官方修复建议
当前官方已发布最新版本,及时更新升级到最新版本。链接如下:
https://github.com/apache/logging-log4j2/tags
注:Java8 的用户需要升级到 Apache Log4j 2.17.0版本。