乐趣区

关于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 弹架构』可获取更多技术干货!

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

退出移动版