这几天为了应对《Apache Log4j2 报核弹级漏洞》,Log4j2 连续发布了两个 RC(Release Candidate)候选版本。
在第一次的 RC1 候选版本中,Log4j2 还存在漏洞绕过风险,官方随后又发布了 RC2,现在终于彻底解决了,2.15.0 版本转正,正式发布:
有没有被折腾过两次的?
Log4j 2.15.0 正式版来了,可真正用于生产环境,所以,现在你可能还要再折腾一次。。。
Log4j2 中提供了Lookups 机制,用于添加一些特殊值到日志中,在 Lookups 机制中,由于 JNDI 功能没有对名称解析做限制,而某些协议是不安全的,可以允许远程代码执行,从而导致核弹级漏洞。
1、Log4j 2.15.0+ 现在默认将协议限制为仅 java、ldap 和 ldaps,并将 ldap 协议做访问限制了,默认仅允许访问本地服务器上的 Java 原始对象。
2、Log4j 2.15.0+ 现在默认禁用 Lookups 功能,虽然 Log4j 2.x 没有完全废除这项功能,但强烈建议大家不要启用它。
除了解决漏洞:CVE-2021-44228,Log4j 2.15.0 还有以下 3 个新特性:
最新正式版本下载:
https://logging.apache.org/log4j/2.x/download.html
最新 Maven 依赖:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>
spring-boot-starter-log4j2 尚未更新,可以先覆盖其内置版本:
<properties>
<log4j2.version>2.15.0</log4j2.version>
</properties>
或者也不用升级 jar 包,先使用官方的解决参数先解决,参考:《突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!》,等 Spring Boot 发布新版本再更新即可。
Spring Boot 基础就不介绍了,推荐下这个实战教程:
https://github.com/javastacks/spring-boot-best-practice
另外,Spring Boot 也跟进此漏洞:
Spring Boot v2.5.8 & v2.6.2 将采用 Log4J v2.15.0 版本,界时可以解决此漏洞,等新版本发布,预计在 2021/12/23,栈长再给大家解读
Log4j 2.15.0 转正了,发布正式版了,解决了 CVE-2021-44228 漏洞,还有 3 个新特性,如果你们已经升级解决了,不纠结是否正式版本,可以忽略此版本,不然你还要再折腾一次。。
如果你们用的 Spring Boot,可以等这个月 23 号的新版本,不过为了解决这个漏洞升级到最新的 Spring Boot 版本,这个值得大家商榷,或许不是大部分人的最佳选择。
版权声明: 本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,抄袭者一律举报+投诉,并保留追究其法律责任的权利。