背景

继前天正式发布的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/log4j/2.x/

事件时间线

[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弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!

如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。

原创不易,坚持很酷,都看到这里了,小伙伴记得点赞、收藏、在看,一键三连加关注!如果你觉得内容太干,可以分享转发给朋友滋润滋润!

【紧急】继续折腾,Log4j再发2.1.6,强烈建议升级的更多相关文章

  1. 【紧急】Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,小白也能看懂

    1 事件背景 经过一周时间的Log4j2 RCE事件的发酵,事情也变也越来越复杂和有趣,就连 Log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决 ...

  2. Log4j配置发邮件功能

    # 发送日志到指定邮件log4j.appender.mail=org.apache.log4j.net.SMTPAppenderlog4j.appender.mail.Threshold=DEBUGl ...

  3. spring-data-redis的事务操作深度解析--原来客户端库还可以攒够了事务命令再发?

    一.官方文档 简单介绍下redis的几个事务命令: redis事务四大指令: MULTI.EXEC.DISCARD.WATCH. 这四个指令构成了redis事务处理的基础. 1.MULTI用来组装一个 ...

  4. Log4j2再发新版本2.16.0,完全删除Message Lookups的支持,加固漏洞防御

    昨天,Apache Log4j 团队再次发布了新版本:2.16.0! 2.16.0 更新内容 默认禁用JNDI的访问,用户需要通过配置log4j2.enableJndi参数开启 默认允许协议限制为:j ...

  5. WPF ScrollViewer(滚动条) 自定义样式表制作 再发一套样式 细节优化

    艾尼路 出的效果图 本人嵌套 WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂 WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化) 源代码

  6. Delphi 实现无窗口移动(发WM_NCHITTEST消息计算,然后再发WM_SYSCOMMAND消息,带参数SC_DRAGMOVE)

    procedure imgListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) ...

  7. Java测试代码(很不完整,建议大家别看,过几天会再发一次难的版本)

    package ATM;  import java.io.BufferedReader;  import java.io.InputStreamReader;  class Account{ priv ...

  8. Log4j未平,Logback 又起!再爆漏洞?

    前段时间 Log4j接连爆漏洞的事儿相比把大家都折腾的不轻,很多开发都被连夜叫起来修复漏洞.这几天终于平复一些了. 可是,昨晚,忽然看到技术群和朋友圈,有人开始聊Logback 又爆漏洞了. 这是什么 ...

  9. Java中log4j的使用

    前言 距离上一篇文章又过去好长时间了,这段时间一直忙于工作,已经从net彻底转向Java了.工作也慢慢的步入正轨了,自己独自完成了一个小项目,不过工作中遇到了一些问题,还是得到了同学和同事的帮助.本来 ...

随机推荐

  1. Hadoop整体概述

    目录 前言 core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml 一.HDFS HDFS的设计理念 HDFS的缺点 1.NameNode ...

  2. 安装mysql会出现start service错误

    安装MySQL时无法启动服务(could not start the service MYSQL .Error:0)安装mysql会出现start service错误安装mysql时 配置到start ...

  3. [hdu5245]Joyful

    很难考虑矩形覆盖的问题,但可以考虑每一个点被覆盖的概率/期望(把矩形分成九部分后容斥即可),sigma起来即答案 1 #include<bits/stdc++.h> 2 using nam ...

  4. [luogu3334]抛硬币

    (数据范围的公式渲染有一些问题,大概是$a\le b\le 100$) 同洛谷4548,推导过程省略,直接给出答案-- 令$p_{H}=\frac{b}{a}$,$p_{T}=\frac{b}{b-a ...

  5. buu misc 1-32 wp

    buuCTFwp(1~32) 1.签到题 题里就有flag flag{buu_ctf} 2.二维码 1.题目是一个二维码,用010发现提示四位数字,想到应该是暗藏压缩包 2.虚拟机foremost分离 ...

  6. 从零开始学Kotlin第四课

    面向对象: //妹子 性格 声音 class Girl(var chactor:String,var voice:String) fun main(args: Array<String>) ...

  7. [SQL Server]一列多行转换为字符串

    在 SQL Server 中,如何将多行数据变成一个字符串保存. skill 投石 挖矿 刮痧 上面三行数据想要得到结果为:投石,挖矿,刮痧 有两种方式: 拼接字符串. 使用 for XML 首先创建 ...

  8. .Net Core中使用ElasticSearch(二)

    .Net的ElasticSearch 有两个版本,Elasticsearch.Net(低级) 和 NEST(高级),推荐使用 NEST,低级版本的更灵活,水太深 把握不住.有个需要注意,使用的版本号必 ...

  9. Redis基本数据类型底层数据结构

    Redis数据类型底层数据结构 Redis目前基本的数据类型有String.List.Set.ZSet.Hash五种,首先Redis是C语言开发的,所以底层就是用C语言封装数据结构或者C语言本身提供的 ...

  10. Python 3 快速入门 1 —— 数据类型与变量

    本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...