irpas技术客

2021.12.15 log4j2漏洞解决(SpringBoot,SpringCloud,SpringCloud Alibaba)_何必太菜

irpas 711

log4j2漏洞解决(2021.12.15) 1. 简单复现2. 简单自查2.1.查看maven仓库(IntelliJ IDEA -> setting -> maven)2.2. 查找log4j2依赖版本2.3. 注意事项 3. 如何解决4. 请将log4j2相关依赖的版本提升至2.17.0

1. 简单复现

maven依赖

<!-- lombok支持 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <!-- 复现方式1:springboot引入log4j2依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> <version>2.2.5.RELEASE</version> </dependency> <!-- 复现方式2:普通引入log4j2依赖 --> <!-- <dependency>--> <!-- <groupId>org.apache.logging.log4j</groupId>--> <!-- <artifactId>log4j-api</artifactId>--> <!-- <version>2.12.1</version>--> <!-- </dependency>--> <!-- <dependency>--> <!-- <groupId>org.apache.logging.log4j</groupId>--> <!-- <artifactId>log4j-core</artifactId>--> <!-- <version>2.12.1</version>--> <!-- </dependency>-->

测试

//@Slf4j 复现方式1 public class Test { //复现方式2 //static Logger log = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME); public static void main(String... args) { log.error("${java:os}"); //日志打印出: Windows 10 10.0, architecture: amd64-64 } } 2. 简单自查 2.1.查看maven仓库(IntelliJ IDEA -> setting -> maven)

我的仓库在:D:/apache-maven-3.6.3

2.2. 查找log4j2依赖版本

打开对应文件夹:D:\apache-maven-3.6.3\repository\org\apache\logging\log4j\log4j-api

2.3. 注意事项

引入了spring-boot-starter或者spring-boot-starter-web,默认的日志是logback。即使没有修改默认框架为log4j2, 仍需提高log4j2的版本(也要注意其他jar包依赖)。

3. 如何解决 用最简单的方法指定log4j2版本(高于2.16.0版本是安全的版本),清空D:\apache-maven-3.6.3\repository\org\apache\logging文件夹, 重新下载依赖,发现log4j2版本已变成2.16.0,至此问题已解决。或者使用IntelliJ IDEA查看依赖信息 <!-- 提高依赖版本 解决:普通引入log4j2依赖不指定版本,在版本锁定里面指定 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <!--<version>2.12.1</version>--> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <!--<version>2.12.1</version>--> </dependency> <!-- 锁定版本 解决:springboot引入log4j2依赖问题 --> <dependencyManagement> <dependencies> <!-- 指定log4j2相关依赖 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.16.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.16.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.16.0</version> </dependency> </dependencies> </dependencyManagement>

4. 请将log4j2相关依赖的版本提升至2.17.0


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #20211215 #springcloud #Alibaba #简单复现2