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

问题描述

由于在项目中间接引用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.
相关推荐
qinqinzqq14 小时前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven
wxwx_bscxy32214 小时前
基于springboot宠物领养系统的设计与实现
数据库·spring boot·后端·spring·宠物
o盟14 小时前
maven本地仓库有 总是去私仓中下载
java·maven·intellij-idea
devpotato14 小时前
Java 批量并发请求:从“能并发“到“结果按完成顺序可用“的三种写法与选型
java
苏生Susheng15 小时前
【软件实施】Linux企业运维常用命令手册
java·linux·运维·服务器·springboot·springcloud·软件实施
想要成为老金高手15 小时前
Kubernetes 调度器详解:从 nodeName 到污点容忍
java·容器·kubernetes
吴长建先生重名了15 小时前
ElasticSearch 检索系统性能优化实战:基准测试
java
西索斯coding15 小时前
doubao-seed-2.1-turbo 调用一直 401 怎么办?pro 版同样的 Key 却正常——5 分钟排查定位指南
java·服务器·数据库·ai
旧梦952715 小时前
Java SortedMap 接口详解:从入门到实战
java·开发语言
莫陌尛.15 小时前
Java_this构造方法
java·开发语言