依赖传递中某依赖版本低造成安全漏洞问题

问题描述

由于在项目中间接引用poi依赖,此依赖版本过低导致漏洞。


原因分析:

Apache POI 版本<= 4.1.0 中,当使用 XSSFExportToXml 工具转换用户提供的 Excel 文档时,可以在 xmlMaps.xml 加入恶意代码制作成 excel 文档,

漏洞是在使用 XSSFExportToXml 类 xlsx 转 xml 时触发的

对比版本 4.1.0 和 4.1.1 XSSFExportToXml 类的源码,发现在 isValid 方法里多设置了一个 feature,

问题就出在org.apache.poi.xssf.extractor.XSSFExportToXml#isValid 方法里,

如果org.apache.poi.xssf.extractor.XSSFExportToXml#exportToXML(java.io.OutputStream, java.lang.String, boolean) 方法的第三个参数为 true 则会进入 isValid 触发XML External Entity处理在服务器读取文件资源或发送外部请求


解决方案:

  1. 如果不使用poi,由于间接依赖引入了poi,则在pom文件中使用exclude排除poi
  1. 如果使用poi,则在pom文件中使用指定poi版本超过4.1.0.
相关推荐
Yeh20205812 分钟前
Mybatis笔记一
java·笔记·mybatis
likerhood13 分钟前
Java 动态代理深度解析:从“为什么“到“底层原理“
java
_阿伟_16 分钟前
信息检索简单介绍
java
下次再写18 分钟前
深入浅出微服务架构:从理论到Spring Boot实战
java·微服务·springboot·springcloud·架构设计·后端开发·分布式系统
进阶的猿猴29 分钟前
Rsa简单实现接口到期限制(springBoot)
java·spring boot·后端
雨落在了我的手上39 分钟前
初识java(二):数据类型与变量
java·开发语言
小闫BI设源码39 分钟前
当20个节点选出两个Master时:Elasticsearch的致命故障与解决方案
java·elasticsearch·jenkins·php·面试宝典·深入解析
花花鱼1 小时前
Spring Framework 、Spring Boot 、 Spring Data 、Spring Cloud之间的关系简单说明
spring boot·spring·spring cloud
SamDeepThinking1 小时前
千万级用户购物车系统的架构设计
java·后端·架构
liwulin05061 小时前
【JAVAFX】从ORACLE JDK切换到国内的JDK以便使用JAVAFX功能
java·数据库·oracle