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

问题描述

由于在项目中间接引用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.
相关推荐
sky丶Mamba几秒前
Java虚拟机启动时默认携带参数(jdk8)
java·jvm
五味香14 分钟前
Java学习,字符串搜索
java·c语言·开发语言·python·学习·golang·kotlin
weixin_11223318 分钟前
基于Java图书借阅系统的设计与实现
java·开发语言
江上清风山间明月32 分钟前
flutter编译e: Daemon compilation failed: null java.lang.Exception错误解决
java·flutter·exception·daemon·compilation
大G哥32 分钟前
Flutter如何调用java接口如何导入java包
java·开发语言·flutter
helloworld工程师36 分钟前
Dubbo的负载均衡及高性能RPC调用
java·大数据·人工智能
南宫生38 分钟前
力扣-图论-9【算法学习day.59】
java·学习·算法·leetcode·图论
confident341 分钟前
hibernate 配置 二级 缓存
java·缓存·hibernate
CopyProfessor44 分钟前
Java版-图论-最短路-Floyd算法
java·算法·图论
-觅-1 小时前
‘Close Project‘ is not available while IDEA is updating indexes的解决
java·ide·intellij-idea