背景
这几天为了应对《突发!Apache Log4j2 报核弹级漏洞。。赶紧修复!!》,Log4j2 连续发布了两个 RC(Release Candidate)候选版本。
在第一次的 RC1 候选版本中,Log4j2 还存在漏洞绕过风险,官方随后又发布了 RC2,现在终于彻底解决了,2.15.0 版本转正,正式发布:
有没有被折腾过两次的?
Log4j 2.15.0 正式版来了,可真正用于生产环境,所以,现在你可能还要再折腾一次。。。
解决漏洞:CVE-2021-44228
漏洞原因:
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 个新特性:
- 支持仲裁器,可以有条件地启用 inclusion 或者 exclusion 日志配置部分;
- 支持 Jakarta EE 9;
- 大量性能提升;
下载升级
最新正式版本下载:
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,栈长再给大家解读,公众号Java技术栈第一时间推送,不要走开哦。
总结
Log4j 2.15.0 转正了,发布正式版了,解决了 CVE-2021-44228 漏洞,还有 3 个新特性,如果你们已经升级解决了,不纠结是否正式版本,可以忽略此版本,不然你还要再折腾一次。。
如果你们用的 Spring Boot,可以等这个月 23 号的新版本,不过为了解决这个漏洞升级到最新的 Spring Boot 版本,这个值得大家商榷,或许不是大部分人的最佳选择。
好了,今天的分享就到这里了,后面栈长会分享更多好玩的 Java 技术和最新的技术资讯,关注公众号Java技术栈第一时间推送,我也将主流 Java 面试题和参考答案都整理好了,在公众号后台回复关键字 “面试” 进行刷题。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。