IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Log4j 史诗级漏洞修复 -> 正文阅读

[Java知识库]Log4j 史诗级漏洞修复

漏洞描述

Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。

漏洞评级

CVE-2021-44228 Apache Log4j 远程代码执行漏洞 严重

影响版本

经验证 2.15.0-rc1 版本存在绕过,实际受影响范围如下:

Apache Log4j 2.x < 2.15.0-rc2

问题复现

代码中添加一下日志打印代码:

String aaa =?"${jndi:ldap://127.0.0.1:2179/calc}";

log.info("aaa:{}",aaa);

log.info("bbb:{}","bbbb");

观察日志出现以下错误:

2021-12-10?19:41:00,827?main WARN Error looking up JNDI resource [ldap://127.0.0.1:2179/calc]. javax.naming.CommunicationException: 127.0.0.1:2179 [Root exception is java.net.ConnectException: Connection refused (Connection refused)]

????at com.sun.jndi.ldap.Connection.<init>(Connection.java:238)

????at com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:137)

问题核查

1、项目中用到log4j-core jar包的,且版本小于2.15.0以下的项目

mvn dependency:tree -Dverbose -Dincludes=org.apache.logging.log4j:log4j-core

[INFO] --- maven-dependency-plugin:2.10:tree (default-cli) @ homergw ---

[WARNING] Using Maven?2?dependency tree to get verbose output, which may be inconsistent with actual Maven?3?resolution

[INFO] com.caocao.homer:homergw:jar:1.7.4.3.1

[INFO] \- org.springframework.boot:spring-boot-starter-log4j2:jar:1.5.7.RELEASE:compile

[INFO]??? \- org.apache.logging.log4j:log4j-core:jar:2.7:compile

依赖了以下jar包的

<dependency>

??<groupId>org.apache.logging.log4j</groupId>

??<artifactId>log4j-core</artifactId>

??<version>${log4j2.version}</version>

</dependency>

问题解决

描述

log4j-core版本

解决办法

小于2.10.0

有两种解决办法:

第一种:升级jar版本到2.10.0以上,JVM启动参数配置-Dlog4j2.formatMsgNoLookups=true (临时解决办法)

第二种:升级到2.15.0?(推荐)

大于2.10.0但是小于2.15.0

有两种解决办法:

第一种:JVM启动参数配置-Dlog4j2.formatMsgNoLookups=true (临时解决办法)

第二种:升级到2.15.0?(推荐)

第二种:升级jar版本到2.15.0以上

pom.xml文件修改

<properties>?

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

</properties>

<dependency>

??<groupId>org.apache.logging.log4j</groupId>

??<artifactId>log4j-api</artifactId>

??<version>${log4j2.version}</version>

</dependency>

<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-slf4j-impl</artifactId>

??<version>${log4j2.version}</version>

</dependency>

参考文档

阿里云帮助中心-阿里云,领先的云计算服务提供商

Apache Log4j2 远程代码执行漏洞(CVE-2021-44228 )风险紧急通告,腾讯安全全面支持检测拦截

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-20 17:53:01  更:2021-12-20 17:53:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:36:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码