背景

继前天正式发布的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. 如何提高C# StringBuilder的性能

    本文探讨使用C# StringBuilder 的最佳实践,用于减少内存分配,提高字符串操作的性能. 在 .NET 中,字符串是不可变的类型.每当你在 .NET 中修改一个字符串对象时,就会在内存中创建 ...

  2. [bzoj5511]大中锋的游乐场

    记可乐为1,汉堡为-1,即求过程中绝对值不超过k的最短路. 然后发现k的范围仅为10,也就是说过程中合法的值仅有21种,因此跑一遍dij或spfa(嘿嘿嘿)即可. 1 #include<bits ...

  3. PHP绕过MD5比较的各种姿势

    1.用==进行弱类型比较时, 可以通过两个0e开头后面纯数字的md5绕过 php在进行弱类型比较时,如果为字符串为纯数字,包括浮点数.科学计数法.十六进制数等,都会转化为数字类型再进行比较,利用这点, ...

  4. javascript-初级-day02-this关键字

    day01-获取元素的第二种方法 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-T ...

  5. JdbcTemplate 、Mybatis、ORM 、Druid 、HikariCP 、Hibernate是什么?它们有什么关系?

    JdbcTemplate .Mybatis.ORM .Druid .HikariCP .Hibernate是什么?它们有什么关系? 学完Spring和SpringMVC之后,就急于求成的开始学习起Sp ...

  6. 【2020五校联考NOIP #4】今天的你依旧闪耀

    题面传送门 题意: 对于一个长度为 \(n\)(\(n\) 为偶数)的排列 \(p\),定义一次"变换"后得到的排列 \(p'\) 为: \(p'_i=\begin{cases}p ...

  7. Codeforces 1129E - Legendary Tree(思维题)

    Codeforces 题面传送门 & 洛谷题面传送门 考虑以 \(1\) 为根,记 \(siz_i\) 为 \(i\) 子树的大小,那么可以通过询问 \(S=\{2,3,\cdots,n\}, ...

  8. R语言矩阵相关性计算及其可视化?

    目录 1. 矩阵相关性计算方法 base::cor/cor.test psych::corr.test Hmisc::rcorr 其他工具 2. 相关性矩阵转化为两两相关 3. 可视化 corrplo ...

  9. 间断有限元h自适应处理方法

    细分单元 function Hrefine2D(refineflag) 根据refineflag变量细分单元,其中refineflag变量大小为 [Kx1],需要细分单元标记为1,不需要单元为0. 根 ...

  10. 数据库之JDBC

    1.简单认识一下JDBC 1).JDBC是什么? java database connection       java数据库连接 作用:就是为了java连接mysql数据库嘛 要详细的,就面向百度编 ...