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

问题描述

由于在项目中间接引用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.
相关推荐
SWAGGY..14 小时前
Linux系统编程:(十三)环境变量
java·linux·算法
程序员黑豆14 小时前
AI全栈开发 - Java:基本数据类型 vs 引用数据类型的内存存储
java·前端·ai编程
布朗克16814 小时前
34 JVM深入理解
java·jvm
Flittly14 小时前
【AgentScope Java新手村系列】(4)结构化输出
java·spring boot·spring·ai
何以解忧,唯有..15 小时前
Python 中的继承机制:从基础到高级用法详解
java·开发语言·python
Yiyaoshujuku15 小时前
化合物数据集API接口(数据结构及样例)
java·网络·数据结构
plainGeekDev15 小时前
算法刷题笔记:一维DP没那么难,状态想清楚就赢了一半
java·算法·面试
IceBing15 小时前
还在一个个连接 Arthas?这个开源平台支持批量诊断 JVM
java
SL_staff15 小时前
《如何用规则引擎替代if-else?JVS-Rules可视化编排比硬编码强在哪里?》
java·低代码·架构
Sam_Deep_Thinking15 小时前
java中的class到底是个什么东西?
java·开发语言·面试