背景

继前天正式公布的2.15.0之后,Apache log4j 2 团队发表 Log4j 2.16.0 公布!

因为SLF4J适配兼容性的中断,Log4j 当初公布两个版本的SLF4J to Log4j的适配器。log4j-slf4j-impl对应 SLF4J 1.7.x 及更早版本;log4j-slf4j18-impl对应SLF4J 1.8.x 及更高版本一起应用。SLF4J-2.0.0 alpha 版本目前还不齐全反对。

强烈推荐降级2.16.0。

修改谬误

1、LOG4J2-3208:默认禁用 JNDI。须要 log4j2.enableJndi设置为 true 以容许 JNDI。无论是Log4j2还是其它应用了JNDI的Java类库中,在不受爱护的上下文中应用JNDI都具备一个很大的问题平安危险。

2、LOG4J2-3211:齐全删除对Message Lookups的反对。目标是采取强化措施以避免 CVE-2021-44228,此动作不是修复 CVE-2021-44228所必须的。

受破绽影响的Apache我的项目

另外Apache 平安团队在明天颁布了受log4j CVE-2021-44228影响的Apache我的项目。能够依据上面列表进行排查:

我的项目是否受到影响解决方案
Apache Archiva2.2.6正式发行版将解决这个问题
Apache Druid更新到0.22.1
Apache EventMesh暂无明确计划
Apache lceberg
Apache Flink暂无明确计划
Apache Fortress更新到2.0.7
Apache Geode更新到1.12.6,1.13.5,1.14.1
Apache Guacamole
Apache Hadoop应用log4j 1.x
Apache Hive暂无明确计划
Apache Jena暂无明确计划
Apache JMeter暂无明确计划
Apache JSPWiki暂无明确计划
Apache Log4J1.2存在相似破绽参考「CVE-2021-4104]破绽,JMS调用JNDI北洞
Apache Log4J2.x更新到2.16.0
Apache Log4Net
Apache OFBiz更新到18.12.03
Apache Ozone更新到1.2.1
Apache skyWalking更新到8.9.1
Apache Solr更新到8.11.1
Apache Spark应用log4j 1.x
Apache Struts暂无明确计划
Apache Tomcat
Apache TrafficControl暂无明确计划
Apache ZooKeeper应用log4j 1.x
Apache Calcite Avatica更新到1.20.0
Apache CloudStack
在 2.15.0 版本之前,Log4j 会在模式布局(Pattern Layout)中蕴含的音讯或参数中主动解析 Lookups。这行为不再是默认值,必须通过指定启用%msg{lookup}。Apache Log4j 2.16.0至多须要Java 8能力构建和运行。Log4j 2.12.1是最初一个反对Java 7的版本。Java 7不是Log4j团队的长期反对版本。

降级措施

自己在前几天紧急连载了对于此破绽的修复教程: Apache Log4j任意代码执行破绽平安危险降级修复教程 ,此办法仍然无效。

如果你懒得看之前的文章,能够通过间接降级jar包的形式,退出如下依赖:

<properties>    <java.version>1.8</java.version>    <log4j2.version>2.16.0</log4j2.version></properties><dependencies>    <dependency>        <groupId>org.apache.logging.log4j</groupId>        <artifactId>log4j-core</artifactId>        <version>${log4j2.version}</version>    </dependency>    <dependency>        <groupId>org.apache.logging.log4j</groupId>        <artifactId>log4j-api</artifactId>        <version>${log4j2.version}</version>    </dependency></dependencies>

如果你的是SpringBoot我的项目,只需批改版本号:

<properties>    <java.version>1.8</java.version>    <log4j2.version>2.16.0</log4j2.version></properties><dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-log4j2</artifactId>    </dependency></dependencies>

参考资料

无关Apache Log4j2的残缺信息,包含无关如何提交错误报告、补丁或改良倡议,请参阅Apache Apache Log4j2网站:

https://logging.apache.org/lo...

事件工夫线

[2021/12/14] Apache log4j 2 团队发表 Log4j 2.16.0 公布

[2021/12/13] 官网公布正式公布2.15.0,Java日志库Log4j2注入破绽复现

[2021/12/11] Spring Boot应答Log4j2注入破绽官网指南

[2021/12/10] 出名Java日志组件Log4j2爆出重大0 day破绽

关注微信公众号『 Tom弹架构 』回复“Spring”可获取残缺源码。

本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我高兴!如果您有任何倡议也可留言评论或私信,您的反对是我保持创作的能源。关注微信公众号『 Tom弹架构 』可获取更多技术干货!

原创不易,保持很酷,都看到这里了,小伙伴记得点赞、珍藏、在看,一键三连加关注!如果你感觉内容太干,能够分享转发给敌人滋润滋润!