Apache Log4j2远程JNDI代码执行漏洞修复

#漏洞简介

Apache Log4j2远程代码执行漏洞

当打印的日志含有${字符串时程序会使用lookup解析要打印的字符串,执行任意远程代码,框架没有做相应的过滤导致注入。官网已经在2.16.0(jdk8)和2.12.2(jdk7)修复该问题。

Log4j – Apache Log4j Security Vulnerabilities

2.15.0版本修复CVE-2021-44228漏洞之后,在2.16.0又修复了CVE -CVE-2021-45046.

#影响范围

Apache Log4j 2.x <=2.14.1 (官网2021/12/13最新下载的2.15.0中已经修复该问题

#修复措施

一、jdk8+的升级到官网的log4j 2.16.0版本(Index of /dist/logging/log4j/2.16.0),log4j-core-2.16*.jar中的JndiManager.java中已经增加了校验;

jdk7的需要升级到log4j-2.12.2版本(https://archive.apache.org/dist/logging/log4j/2.12.2/)

可以看到2.12.2和2.16.0中消息lookups功能已经不支持了. 

二、不能升级的可以通过以下措施来缓解该问题(本人观察都是关闭lookups功能的开关):
1.在log4j2.x >=2.10的版本
        创建log4j2.component.properties文件,文件中增加配置 “log4j2.formatMsgNoLookups=true”

        执行下面的命令,设置环境变量LOG4J_FORMAT_MSG_NO_LOOKUPS为true来关闭lookups功能。
 export LOG4J_FORMAT_MSG_NO_LOOKUPS=true
 echo "export LOG4J_FORMAT_MSG_NO_LOOKUPS=true" >> ~/.bash_profile
2.对于从log4j2.7到2.14的版本。
         修改log4j2.xml中所有PatternLayout的pattern中的%m修改为%m{nolookups}

3.对于从2.0-beta9到2.7的版本,唯一的缓解措施是从 log4j-core-*.jar类路径中删除JndiLookup类:
 zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class


 

参考:

官网说明:  Log4j – Apache Log4j Security Vulnerabilities

源码比对:

 Index of /dist/logging/log4j/2.16.0

Index of /dist/logging/log4j/2.15.0

Index of /dist/logging/log4j/2.12.2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值