log4j2升级的2.16.0版本又一新的漏洞爆出!用到全局链路日志追踪的速知!或受DOS攻击

速览 CVE-2021-45105

CVE-2021-45105:
Apache Log4j2 does not always protect from infinite recursion in lookup evaluation

CVE-2021-45105 Denial of Service
Severity High
Base CVSS Score 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Versions Affected All versions from 2.0-beta9 to 2.16.0

描述

Apache Log4j2 版本 2.0-alpha1 到 2.16.0 没有防止自引用查找的不受控制的递归。当日志配置使用带有上下文查找的非默认模式布局(例如,$${ctx:loginId})时,控制线程上下文映射 (MDC) 输入数据的攻击者可以制作包含递归查找的恶意输入数据,导致 StackOverflowError 将终止进程。这也称为 DOS(拒绝服务)攻击。

推荐解决方案

Log4j 1.x 缓解

Log4j 1.x 不受此漏洞影响。

Log4j 2.x 缓解

实施以下缓解技术之一:

Java 8(或更高版本)用户应升级到 2.17.0 版。
或者,这可以在配置中缓解:

在日志记录配置的 PatternLayout 中,用线程上下文映射模式(%X、%mdc 或 %MDC)替换 ${ctx:loginId} 或 $${ctx:loginId} 等上下文查找。
否则,在配置中,删除对上下文查找的引用,如 ${ctx:loginId} 或 $${ctx:loginId},它们源自应用程序外部的源,如 HTTP 标头或用户输入。
请注意,只有 log4j-core JAR 文件受此漏洞影响。仅使用 log4j-api JAR 文件而不使用 log4j-core JAR 文件的应用程序不受此漏洞的影响。

另请注意,Apache Log4j 是唯一受此漏洞影响的日志服务子项目。Log4net 和 Log4cxx 等其他项目不受此影响。

相关链接

https://nvd.nist.gov/vuln/detail/CVE-2021-45105
https://logging.apache.org/log4j/2.x/security.html
https://security.netapp.com/advisory/ntap-20211218-0001/