Log4j2突发重大漏洞,我们也中招了

原文作者:沉默王二
相信大家已经被 Log4j2 的重大漏洞刷屏了,估计有不少小伙伴此前为了修 bug 已经累趴下了。很不幸,我的小老弟小二的 Spring Boot 项目中恰好用的就是 Log4j2,版本特喵的还是 2.14.1,在这次漏洞波及的版本范围之内。第一时间从网上得知这个漏洞的消息后,小二吓尿了。赶紧跑过来问老王怎么解决。老王先是给小二提供了一些临时性的建议,比如说:
JVM 参数添加 -Dlog4j2.formatMsgNoLookups=true
log4j2.formatMsgNoLookups=True
FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为true
此后,老王时刻关注着 Log4j2 的官网和 Spring Boot GitHub 仓库的最新消息。
Java 后端开发的小伙伴应该都知道,Log4j、SLF4J、Logback 这 3 个日志组件是一个爹——Ceki Gulcu,但 Log4j 2 却是例外,它是 Apache 基金会的产品。
Ps:老王曾吹过的 Log4j2:起飞了!高性能日志记录工具 Log4j 2
所以这波超级高危漏洞的锅必须得由 Apache 来背。并且波及范围非常广,已知受影响的应用程序和组件有:
Spring-boot-strater-log4j2
Apache Solr
Apache Flink
Apache Druid
并且只要是在 Log4j 2.x <= 2.14.1 之间的版本,都将受到影响——注定被载入史册的一波 bug 啊。
目前,Log4j2 的官网已经发布了 Log4j2 2.15.0 正式版,来解决此次漏洞。
在这里插入图片描述
随着 Log4j2 2.15.0 正式版的发布,Spring Boot 的 GitHub 仓库提的这些关于 Log4j2 的 issue 都已经处于关闭状态了。
看到这些消息后,老王紧张的情绪一下子就缓解了下来,就像吃了一颗定心丸,赶紧去通知小二不用再提心吊胆了,直接一行代码搞定。

<log4j2.version>2.15.0</log4j2.version>

详情可参照 Spring Boot 官方这篇博客:
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
Gradle 构建的项目也有解决方案。
不过老王从 Log4j2 官网公布的最新消息中琢磨出,本次远程代码执行漏洞正是由于组件存在 Java JNDI 注入漏洞:当程序将用户输入的数据记录到日志时,攻击者通过构造特殊请求,来触发 Apache Log4j2 中的远程代码执行漏洞,从而利用此漏洞在目标服务器上执行任意代码。
那肯定会有小伙伴在好奇 JNDI 是什么东东?来看一下维基百科的解释。Java命名和目录接口(Java Naming and Directory Interface,缩写JNDI),是Java的一个目录服务应用程序接口(API),它提供一个目录系统,并将服务名称与对象关联起来,从而使得开发人员在开发过程中可以使用名称来访问对象。利用一段代码,攻击者可以通过JNDI来执行LDAP协议来注入一些非法的可执行代码。
再次提醒大家一下,排查自己的项目是否引入了 Apache log4j-core Jar 包。
在这里插入图片描述

如果存在依赖引入,且在受影响版本范围内,请升级到 Apache Log4j2 2.15.0 版本,目前已经 release。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值