Logback也爆漏洞了,总结下最近log相关的几个漏洞

大家好,我是君哥,周末又要结束了。

前些天 Apache Log4j2 接连报了几个重大漏洞,好在我们的系统使用的 logback,可当我们正庆幸的时候,logback 也爆出漏洞了。今天我们一起来看一下这几个漏洞。

CVE-2021-42550

先看一下官方的漏洞描述:

In logback version 1.2.7 and prior versions, an attacker with the required privileges to edit configurations files could craft a malicious configuration allowing to execute arbitrary code loaded from LDAP servers.

The vulnerability is considered to pose a lesser threat than log4shell because it requires access to logback's configuration file by the attacker, sign of an already compromised system.This CVE-2021-42550 is intended to prevent an escalation of an existing flaw to a higher threat level.

ac49d65c005bdc7b723714ccff74ba3a.png

首先让我们松一口气的是,logback 的这个漏洞不像 log4j 那样严重。如果是 SpringBoot 项目,没有做日志配置的话,默认使用的就是 logback。

logback 官方的修复速度也是非常给力,短时间内发布了 5 个版本:

  • 14th of December, 2021, Release of version 1.2.8

  • 16th of December, 2021, Release of version 1.3.0-alpha11

  • 16th of December, 2021, Release of version 1.2.9

  • 22nd of December, 2021, Release of version 1.3.0-alpha12

  • 23rd of December, 2021, Release of version 1.2.10

从上面官方的截图我们可以看到,有两个方法可以避开这个漏洞

  • logback 版本升级到 1.2.9

  • 把 logback.xml 文件配置为只读

SpringBoot 项目也跟着 logback 的升级做了升级,比如  SpringBoot v2.6.2 版本就把 logback 升级到了 1.2.9。

但是对于真实的系统环境,升级 SpringBoot 版本牵扯到的测试太多了,要快速修复还是升级一下 logback 版本最快。

<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.9</version>
</dependency>

CVE-2021-44228

这个漏洞的另一个编号是 CNVD-2021-95914。

Log4j2 日志组件在处理程序日志记录时存在 JNDI 注入缺陷,攻击者可以利用该漏洞,获得目标服务器权限,向目标服务器发送恶意数据,在目标服务器任意代码执行。这个攻击主要针对有外网访问的应用,如果没有外网访问,可以不用太担心。

影响范围:2.0 <= Apache log4j <Log4j-2.15.0

修复措施:

  • 升级 Log4j2 版本到 2.16.0

  • 改用日志框架,使用 Log4j 或者 logback

  • 添加 jvm 启动参数 -Dlog4j2.formatMsgNoLookups=true

  • 在应用 classpath 下添加配置文件 log4j2.component.properties,文件内容为 log4j2.formatMsgNoLookups=true

  • 升级 JDK 版本,使用 11.0.1、8u191、7u201、6u211 及以上的高版本

  • 禁用 JNDI,比如在 spring.properties 里添加 spring.jndi.ignore=true

  • 部署使用第三方防火墙产品进行安全防护,并更新 WAF、RASP 规则

可以看到,最快的方式就是添加 jvm 参数然后重启服务。

CVE-2021-45046

CVE-2021-44228 的一种形式,如启 Log4j2 用日志配置查找(例如,$${ctx:loginId})或上下文映射模式(%X、%mdc或%MDC)时,将允许远程攻击者使用JNDI查找模式加载恶意类,从而导致远程代码执行或信息漏洞等风险。

这个漏洞只对使用 log4j-core 的应用受影响。

影响范围:2.0 <= Apache log4j <Log4j-2.15.0

建议:将 Log4j2 升级到 1.17.0。

CVE-2021-45105

由于 Log4j2 某些特殊配置,使用非默认的模式布局和上下文查找(例如,$${ctx:loginId})时,攻击者可以通过构造包含递归查找数据包的方式,控制线程上下文映射 (MDC),导致 StackOverflowError 产生并终止进程,实现拒绝服务攻击。

这个漏洞只对使用 log4j-core 的应用受影响。

影响范围:2.0 <= Apache log4j <Log4j-2.16.0

建议:将 Log4j2 升级到 1.17.0。

CVE-2021-4104

这个攻击是针对 Log4j1.x 而不是 Log4j2。

当应用程序启用了 JMSAppende,且攻击者可以控制 JMSAppender 添加 JMSBroker 时,将允许远程攻击者进行代码执行攻击。

影响范围:Log4j1.x版本

因 2015 年 8 月起官方已停止维护  Log4j1.x 版本组件,因此不会提供 Log4j1.x 的版本更新,可以从类路径中移除JMSAppender 类进行修复。命令如下:

zip-q-dlog4j-*.jarorg/apache/log4j/net/JMSAppender.class

总结

上面的漏洞都是跟日志组件相关的,官方已经修复。

如果使用 logback,只要把版本升级到 1.2.9 之上就可以。

如果使用了 log4j2,把版本升级到最新版本,也就是 2.17.0 就可以了。

如果使用 log4j,可以从 classpath 中移除 JMSAppender,但这不是长久之计,建议还是升级到 log4j2 或者改用 logback,毕竟 log4j 1.x 版本官方已经不再维护了。

最后,作为程序员,要时刻关注系统中的技术栈,关注新版本修复的问题是否对系统有影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/293555.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vim配置php语法高亮

安装vim之后&#xff0c;将php语法高亮插件 php.vim&#xff0c;放到/usr/share/vim/vimfiles/syntax 目录下 php语法高亮插件在这里下载&#xff1a;http://www.vim.org/scripts/script.php?script_id1571 然后配置vim配置文件 vimrc 在这里 /etc/vimrc ,增加一行 “s…

九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题

九月十月百度人搜&#xff0c;阿里巴巴&#xff0c;腾讯华为小米搜狗笔试面试八十题 引言 自发表上一篇文章至今&#xff08;事实上&#xff0c;上篇文章更新了近3个月之久&#xff09;&#xff0c;blog已经停了3个多月&#xff0c;而在那之前&#xff0c;自开博以来的21个月每…

C++ exception类

语言本身或者标准库抛出的异常都是 exception 的子类&#xff0c;称为标准异常&#xff08;Standard Exception&#xff09;。你可以通过下面的语句来匹配所有标准异常&#xff1a; try{ //可能抛出异常的语句}catch(exception &e){ //处理异常的语句} 之所以使用引用…

拿了年终奖后,发现自己又拖后腿了?对不起,可能事实并没有那么糟糕...

全世界只有3.14 % 的人关注了爆炸吧知识不平凡的2020年早已过去了&#xff0c;打工人们已经跨过了2021年的门槛。2021年将会怎么样&#xff0c;那只有到2021年结束后我们才会知道。但我们的情绪常常毫无例外地会被“年终奖”这个关键词所扰动&#xff0c;无论在什么时候&#x…

JAVA-MyBatis ORM

MyBatis 的前身就是 iBatis 。是一个数据持久层(ORM)框架。 iBATIS一词来源于“internet”和“abatis”的组合&#xff0c;是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects&#xff08;DAO&#xff09;&#xff0c;同时还提供一个利用这…

Leetcode: Single Number

Given an array of integers, every element appears twice except for one. Find that single one.Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? Analysis: 需求里面要求O(N)时间以及无额外空间&…

如何使用 C# 压缩单个文件?

咨询区 user3362735我的项目有一个需求&#xff0c;需要对 文件夹 下的文件进行压缩&#xff0c;我用 ZipFile.CreateFromDirectory 方法发现并不能成功&#xff0c;但我对整个文件夹压缩是没有问题的&#xff0c;请问我该如何正确实现&#xff1f;回答区 John Koerner可以借助…

Android之mediarecorder中的方法以及工作流程的过程

嵌套、关联的类 class MediaRecorder.AudioEncoder 定义音频编码 class MediaRecorder.AudioSource 定义声音资源 interface MediaRecorder.OnErrorListener Interface definition for a callback to be invoked when an error occurs while recording. int…

杭电Problem 1872 稳定排序

稳定排序 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5200 Accepted Submission(s): 1988Problem Description大家都知道&#xff0c;快速排序是不稳定的排序方法。如果对于数组中出现的任意a[i],a[j](i<…

AMD and CMD are dead之KMD.js依赖可视化工具发布

使用 require("MyAapp.DepTree", function (DepTree) {DepTree(({renderTo: "holder",width: "820",height: "580",data: [{ "name": "System" },{ "name": "Util" },{ "name": &q…

WPF中的触发器(Trigger)

这节来讲一下WPF中的触发器——Trigger。触发器&#xff0c;是指在既定条件或者特殊场景下被触发&#xff0c;从而去执行一个操作。在WPF中&#xff0c;触发器可以分为以下几类&#xff1a;基本触发器(Trigger)&#xff1b;事件触发器(EventTrigger)&#xff1b;数据触发器(Dat…

uCOS:时钟节拍代码追踪

uCos中的时钟节拍可以基于软中断实现或者基于时钟节拍任务&#xff08;但是这个任务要给予很高的优先级&#xff09;对于STM32&#xff08;Cortex-M3&#xff09;来说这个就是SysTick中断0x0000003C当中断发生时调用OS_CPU_SysTickHandler函数&#xff0c;这样就提供了系统的时…

数学之美番外篇:平凡而又神奇的贝叶斯方法

概率论只不过是把常识用数学公式表达了出来。 ——拉普拉斯 记得读本科的时候&#xff0c;最喜欢到城里的计算机书店里面去闲逛&#xff0c;一逛就是好几个小时&#xff1b;有一次&#xff0c;在书店看到一本书&#xff0c;名叫贝叶斯方法。当时数学系的课程还没有学到概率统计…

Android之用jadx进行反编译

利用开源项目jadx反编译Android应用 利用Github开源项目jadx可以直接对 .dex, .apk, .jar, .class 类型的文件进行直接反编译对比之前 apktool(解包apk) dex2jar(将.dex转换成.jar) jd-gui (查看.jar文件)反编译三件套, jadx的优点在于: 1. 可以一行命令直接反编译恢复出.…

linux red hat 安装svn

安装步骤如下&#xff1a;1、yum install subversion 2、输入rpm -ql subversion查看安装位置&#xff0c;如下图&#xff1a;我们知道svn在bin目录下生成了几个二进制文件。输入 svn --help可以查看svn的使用方法&#xff0c;如下图。3、创建svn版本库目录mkdir -p /var/svn/s…

RTP在。net中的使用(资料)

开源组件&#xff1a;lumisoft 网址&#xff1a;http://www.lumisoft.ee/lswww/download/downloads/Examples/ 非开源的免费组建&#xff1a;rtp.net &#xff08;微软推荐&#xff09;转载于:https://www.cnblogs.com/foreverme/p/3799129.html

如何预热Web API,减少初次执行时间

前言在上次的《差距50倍&#xff01;为什么Web API第一次执行这么慢&#xff1f;》文章中&#xff0c;我们发现了部分耗时比较大的方法&#xff1a;Microsoft.AspNetCore.Mvc.Infrastructure.ActionInvokerFactory.CreateInvoker - 30.15ms查看源代码&#xff0c;ActionInvoker…

Android之关于电话录音原理,目前的方法还是只能录MIC

对于android来讲&#xff0c;没有API直接支持对电话进行双向录音。虽然MediaRecorder里面可以设置recodeRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL);来表示要对双向进行录音&#xff0c;但是这个功能实际是不可使用的&#xff0c;唯一能直接使用的还是VOI…