Apache Log4j2程代码执行漏洞(CVE-2021-45105/CVE-2021-44228)且 pom.xml文件中是slf4j-log4j12依赖的漏洞修复

文章介绍了ApacheLog4j的日志框架及其两个高危安全漏洞,CVE-2021-45105和CVE-2021-44228,这些漏洞可能导致远程代码执行。Log4j2作为升级版引入了更多特性,但存在安全隐患。修复方案包括升级到Log4j2的最新版本并更新pom.xml文件中的相关依赖。
摘要由CSDN通过智能技术生成

1.漏洞描述

1.1 Apache Log4j介绍

Apache Log4j是一个基于Java语言开源的日志框架,已于2015年8月5日停止维护。Log4j2是其重构升级版本,引入了大量丰富的特性,可以控制日志信息输送的目的地为控制台、文件、GUI组件等,并通过定义每一条日志信息的级别,使其能更加细致地控制日志的生成过程。

1.2 CVE-2021-45105漏洞介绍

2021年12月20日,360CERT监测发现Apache官方发布了Apache Log4j的风险通告,漏洞编号为CVE-2021-45105,漏洞等级:高危,漏洞评分:7.5。目前官方已发布安全版本。这是最近在 Log4J 中发现的第三个安全漏洞。
参考https://cert.360.cn/report/detail?id=afe61624e78397657fd332b5dee8fa16

1.3 CVE-2021-44228漏洞介绍

2021.12.09 腾讯安全注意到,一个Apache log42高危漏洞(CVE-221-44228)细节已被公开,Log4j-2中存在JNDI注入漏洞,当程序将用户输入的数据进行日志记录时,即可发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
Apache Log4j2是一个基于Java的日志记录工具。该工具重写了Log4j框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系统开发,用来记录日志信息,大多数情况下,开发者可能会将用户输入导致的错误信息写入日志中。
漏洞等级:高危,该漏洞影响范围极广,危害极大。
参考https://s.tencent.com/research/report/144.html

2.漏洞原因

因为Log4停止维护了,所以需要升级到Log4j2的目前推荐版本或者最高版本。

3.漏洞修复

修复前pom.xml文件(文件中相关依赖):

<!-- LOGGING begin -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <!-- common-logging 实际调用slf4j -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <!-- java.util.logging 实际调用slf4j -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <!-- LOGGING end -->

修复后pom.xml文件(需要将上述文件依赖变成):

<!-- LOGGING begin -->
    <!--slf4j的依赖-->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <!--log4j2 的依赖-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <!--用于与sfl4j保持桥接-->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-web</artifactId>
      <version>${log4j.version}</version>
      <scope>runtime</scope>
    </dependency>
    <!--  用来无缝切换Log4j到log4j2的中间层 注意版本号要跟用的log4j2的版本号一致 -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-1.2-api</artifactId>
      <version>${log4j.version}</version>
    </dependency>
    <!-- LOGGING end -->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值