关于log4j:紧急继续折腾Log4j再发2160强烈建议升级

背景

继前天正式公布的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 Archiva 2.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弹架构 』可获取更多技术干货!

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理