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

Posted Java技术栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卧槽!Log4j2 再爆雷,Log4j v2.17.0 横空出世。。。相关的知识,希望对你有一定的参考价值。

点击关注公众号,Java干货及时送达

Log4j2 再爆雷

Log4j2 这是没完没了了,栈长以为《玩大了!Log4j 2.x 再爆雷。。。》 Log4j 2.16.0 是最终终结版本了,没想到才过多久又爆雷了:

前两天栈长还说 Log4j 2.16.0 是最安全的版本,没想到这么快就又打脸了,Log4j 2.17.0 横空出世。。。

又来了。。Log4j2 这是中了新冠的毒?

这次又爆出来新的 DOS 拒绝服务攻击漏洞。。

如果你想关注和学习最新、最主流的 Java 技术,可以持续关注公众号Java技术栈,公众号第一时间推送。

安全漏洞:CVE-2021-45105

漏洞摘要

Log4j 团队又获悉了一个重要的安全漏洞 CVE-2021-45105:

CVE-2021-45105拒绝服务攻击漏洞
安全等级
影响版本Log4j2 2.0-alpha1 到 2.16.0

该漏洞已在支持 Java 8+ 版本的 Log4j 2.17.0 中得到解决,请尽快升级。

漏洞详情

因没有防止自引用 lookups 的不受控制的递归,当日志配置使用带有上下文 Lookup 的非默认模式,例如:

$$ctx:loginId

此时,攻击者可以制作包含递归查找的恶意输入数据,导致 StackOverflowError 错误而终止进程,这也就是 DOS(Denial of Service)拒绝服务攻击。

从 Log4j 2.17.0 版本开始,只有配置中的 lookup 字符串才允许递归扩展,另外,在任何其他用法中,仅解析最顶级的 lookup,不解析任何嵌套的 lookups。

解决方案

1、升级版本

立马升级到最新版本:Log4j 2.17.0

最新正式版本下载:

https://logging.apache.org/log4j/2.x/download.html

最新 Maven 依赖:

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

spring-boot-starter-log4j2 尚未更新,可以先覆盖其内置版本:

<properties>
  <log4j2.version>2.17.0</log4j2.version>
</properties>

Spring Boot 基础就不介绍了,推荐下这个实战教程:

https://github.com/javastacks/spring-boot-best-practice

另外,Spring Boot 也在跟进此漏洞,界时新版本可以连带解决,等新版本发布,栈长再给大家解读,公众号Java技术栈第一时间推送,不要走开哦。

2、临时解决

如果你不想升级版本,可以考虑使用以下 2 种临时解决方案:

1)在 PatternLayout 日志配置中,替换上下文 Lookups 中的 $ctx:loginId 或者 $$ctx:loginId 为线程上下文映射模式(%X, %mdc, or %MDC)。

2)或者,删除对上下文 Lookups 中对 $ctx:loginId or $$ctx:loginId 的引用,它们一般来自应用程序外部,如 HTTP Header 或用户输入。

总结

Log4j2 最近是魔怔了??

一直在解决漏洞,连续发版,从最开始的 Log4j 2.15.0 到现在最新 2.17.0,大大小小的版本已经发了 10 个了,影响的周期已经接近两周了,目前还没看到收尾的迹象。。

这次应该是爆出来的第 4 个漏洞了:

  • CVE-2021-45105(拒绝服务攻击漏洞,最新!)

  • CVE-2021-45046(远程代码执行漏洞)

  • CVE-2021-44228(远程代码执行漏洞)

  • 信息泄漏漏洞(安全公司 Praetorian 发现)

后面 3 个在 Log4j 2.16.0 中已经得到解决,最新的请升级 2.17.0!!!

这是不是最后一次版本不得而知,总之这个版本是必须升级的,或检查配置,使用临时解决方案,后续进展栈长也会第一时间跟进,关注公众号Java技术栈,公众号第一时间推送。

这也不能怪 Log4j2,详细可阅读:

Log4j2 维护者发声:没有工资,还要挨骂!!(我真是醉了!)

所以,用开源就要接受开源可能带来的影响,也不能责备开源人,都是成年人了,用不用是自己的选择,哪款产品没有漏洞呢?哪怕是商用产品。

版权声明: 本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究其法律责任的权利。

23 种设计模式实战(很全)

玩大了!Log4j 2.x 再爆雷。。。

劲爆!Java 协程要来了。。。

JetBrains 发布下一代 IDE,IDEA 可以扔了

重磅!JDK 17 发布,正式免费。。

面试官:Java 8 map 和 flatMap 的区别?

终于!Spring Cloud 2021 正式发布。。

推荐一款代码神器,代码量至少省一半!

程序员精通各种技术体系,45岁求职难!

重磅!Spring Boot 2.6 正式发布

Spring Boot 学习笔记,这个太全了!

关注Java技术栈看更多干货

获取 Spring Boot 实战笔记!

以上是关于卧槽!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 横空出世。。。

紧急!Log4j2 再再爆雷:刚升级,又连爆 “核弹级” 远程数据泄露 ! v2.17.0 横空出世。。。...