Log4j发布2.17.0,解决2.16.0存在的DOS攻击风险

Posted 程序猿DD

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4j发布2.17.0,解决2.16.0存在的DOS攻击风险相关的知识,希望对你有一定的参考价值。

本以为,经过上周的2.16.0版本升级,Log4j2的漏洞修复工作,大家基本都要告一段落了。

万万没想到,就在周末,Log4j官方又发布了新版本:2.17.0

该版本主要修复安全漏洞:CVE-2021-45105

影响版本:2.0-alpha1 至 2.16.0(1.x用户继续忽略)

该漏洞只有当日志配置使用带有Context Lookups的非默认 Pattern Layout(例如**$$ctx:loginId**)时,攻击者可以通过构造包含递归查找的恶意输入数据,触发无限循环,导致 StackOverflowError,最终进程崩溃。

这次漏洞受影响的只有log4j-core,仅使用log4j-api的程序不需要担心。所以,大家可以通过升级log4j-core来修复该漏洞的

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.17.0</version>
</dependency>

当然,如果你是Spring Boot影响,按照之前一行配置搞定Spring Boot项目的 log4j2 核弹漏洞!分享的方法可以更方便的升级。如果您正在学习Spring Boot,那么推荐一个连载多年还在继续更新的免费教程

如果目前还不方便升级版本的话,也可以采用下面的两种方法来缓解此漏洞:

  • 在日志配置的 PatternLayout 中,用 %X、%mdc 或 %MDC 来替换 c t x : l o g i n I d 或 ctx:loginId 或 ctx:loginId$ctx:loginId 等Context Lookups
  • 在使用外部数据(HTTP Header或用户输入等)的地方,删除对Context Lookups的引用(如 $ctx:loginId 或 $$ctx:loginId )

好了,不多说了,大家抓紧自查下,做好必要的防护措施,争取早点睡个好觉!

以上是关于Log4j发布2.17.0,解决2.16.0存在的DOS攻击风险的主要内容,如果未能解决你的问题,请参考以下文章

卧槽!Log4j2 再爆雷,没完没了,Log4j v2.17.0 横空出世。。。

卧槽!Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。

卧槽!Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。

卧槽!Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。

卧槽,Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。

卧槽,Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。