背景
这几天为了应对《突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!》,Log4j2 连续发布了两个 RC(Release Candidate)候选版本,1 个正式版本。
在第一次的 RC1 候选版本中,Log4j2 还存在漏洞绕过风险,官方随后又发布了 RC2,后面就发布了 Log4j 2.15.0 正式版本,可用于生产环境,正式解决了核弹极漏洞。
今天栈长打开公众号Java技术栈,又有粉丝留言说,2.16.0 发布了!!
栈长前往一看:
我天!Log4j 又在搞什么鬼?这又发了 3 个版本??
2 个候选版本,1 个正式版本:2.16.0
是的,又一个正式版本 Log4j 2.16.0 发布了,可用于生产环境。。
下面来看下 2.15.0 - 2.16.0 两个版本都修复了啥内容。
解决漏洞:CVE-2021-44228
漏洞原因:
Log4j2 中提供了Lookups 机制,用于添加一些特殊值到日志中,在 Lookups 机制中,由于 JNDI 功能没有对名称解析做限制,而某些协议是不安全的,可以允许远程代码执行,从而导致核弹级漏洞。
2.15.0 修复内容:
1、Log4j 2.15.0+ 现在默认将协议限制为仅 java、ldap 和 ldaps,并将 ldap 协议做访问限制了,默认仅允许访问本地服务器上的 Java 原始对象。
2、Log4j 2.15.0+ 现在默认禁用 Lookups 功能,虽然 Log4j 2.x 没有完全废除这项功能,但强烈建议大家不要启用它。
2.16.0 修复内容:
1、默认禁用 JNDI 功能。
2、移除消息的 Lookups 功能。
总结
2.15.0 只是对危险功能做了限制和默认禁用,2.16.0 就狠了,干脆直接干掉了。
2.16.0 这次更新也是很有必要的,直接斩草除根,将未知风险扼杀在摇篮里,这也是为了防止用户不小心开启,因为漏洞过去,大家就会疏于防范,在不注意的情况下又会造成漏洞。
果然是核弹级漏洞,大大小小版本搞了好些个了。。这次应该是最后一次的修复版本了吧?大家有没有被折腾过多次的?所以,如果有必要,你可能还要再折腾一次。。。
如何下载、升级、修复,以及 Spring Boot 应对方案,可参考栈长之前分享的文章:
最新!Log4j 2.x 再发版,正式解决核弹级漏洞,又要熬夜了。。。
Apache Log4j 爆核弹级漏洞,Spring Boot 默认日志框架就能完美躲过!!
突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!
如果你想关注和学习最新、最主流的 Java 技术,可以持续关注公众号Java技术栈,公众号第一时间推送。
好了,今天的分享就到这里了,后面栈长还会持续跟进,我也将主流 Java 面试题和参考答案都整理好了,在公众号后台回复关键字 "面试" 进行刷题。