内容纲要
概要描述
Quark / Inceptor JDBC 驱动 quark-driver-8.37.3.jar 被安全扫描报出 guava 和 commons-lang 的 5 个漏洞。扫描结果中的组件和 CVE 如下:
com.google.guava:guava:31.1-jre
CVE-2026-102554 (Medium) fixVersion: [33.7.2]
CVE-2026-118042 (Low) fixVersion: [33.7.2-android]
CVE-2023-2976 (High) fixVersion: [32.0.0-android][32.0.1-jre]
CVE-2020-8908 (Low) fixVersion: [32.0.0-android]
commons-lang:commons-lang:2.6
CVE-2025-48924 (Medium)
命中路径:
quark-driver-8.37.3.jar/META-INF/maven/com.google.guava/guava/pom.xml
quark-driver-8.37.3.jar/META-INF/maven/commons-lang/commons-lang/pom.xml
这两个依赖以重定位方式打包在驱动 jar 中(包名改为 io.transwarp.thirdparty.*),不是独立的 jar 文件。扫描工具根据 jar 内 META-INF/maven 下的 pom 文件识别组件版本。
漏洞修复版驱动已升级或替换这些依赖,详见下文。
详细说明
漏洞信息
| CVE | 组件 | 扫描等级 | 问题 | 受影响版本 | 修复版本 |
|---|---|---|---|---|---|
| CVE-2020-8908 | guava | Low | Files.createTempDir() 创建的临时目录使用默认权限,同一台机器上的其他用户可能读取其中的数据 |
32.0.0 之前 | 32.0.0 |
| CVE-2023-2976 | guava | High | FileBackedOutputStream 在 Java 默认临时目录创建文件,同一台机器上的其他用户可能读取这些文件 |
1.0 ~ 31.1 | 32.0.0(官方建议 32.0.1,32.0.0 在 Windows 上有功能问题) |
| CVE-2026-102554 | guava | Medium | CompactHashMap、CompactHashSet、MapMakerInternalMap 在 Java 原生反序列化时按数据流中声明的大小一次性分配内存,构造的小数据流即可导致 OutOfMemoryError(拒绝服务) |
4.0 ~ 33.7.1 | 33.7.2 |
| CVE-2026-118042 | guava | Low | HashBiMap 和 LinkedHashMultimap 遇到大量哈希冲突的键或值时,构造耗时变为二次方级(拒绝服务) |
13.0 ~ 33.7.2 | 33.8.0 |
| CVE-2025-48924 | commons-lang | Medium | ClassUtils.getClass(...) 处理超长输入时递归过深,抛出 StackOverflowError |
commons-lang 2.0 ~ 2.6;commons-lang3 3.0 ~ 3.17.x | commons-lang3 3.18.0(2.x 没有修复版本) |
注意:
- CVE-2026-118042 的修复版本以 33.8.0 为准: 扫描结果写的是 33.7.2-android,但 Guava 官方公告列出的受影响范围包含 33.7.2-jre,修复在 33.8.0 中发布。只升级到 33.7.2 修不了这个漏洞。
- commons-lang 2.x 已停止维护: 只能迁移到 commons-lang3。
依赖变更
| 依赖 | 原驱动 | 修复版驱动 | 变更 |
|---|---|---|---|
com.google.guava:guava |
31.1-jre | 33.8.0-jre | 升级,修复上表中 4 个 guava 漏洞 |
com.google.guava:failureaccess |
无 | 1.0.3 | 新增。它是 guava 的运行时依赖,原驱动漏打了这个包 |
commons-lang:commons-lang |
2.6 | 无 | 移除,修复 CVE-2025-48924 |
org.apache.commons:commons-lang3 |
无 | 3.21.0 | 新增,替代 commons-lang 2.6 |
- 重定位规则不变: guava 和 failureaccess 位于
io.transwarp.thirdparty.com.google.*,commons-lang3 位于io.transwarp.thirdparty.org.apache.commons.lang3.*。 - 其他依赖版本不变: httpclient 4.5.13、httpcore 4.4.13、antlr-runtime 3.4、stringtemplate 3.2.1、slf4j-api 1.7.5。
- 已核对: 修复版驱动中 guava、failureaccess、commons-lang3 的类,与 Maven Central 官方 jar 逐个类、逐个方法签名比对,完全一致;commons-lang 2.6 的类已全部移除。在 OSV 漏洞库中查询,这三个新版本组件均无已知漏洞(2026-11-06 查询)。
修复驱动获取
quark-driver-8.37.3.jar(漏洞修复版)
其他信息
确认驱动是否为修复版
修复版驱动的版本号仍为 8.37.3,不能只看版本号判断。需要分别确认 guava 和 commons-lang 两个依赖。
-
查看 guava 版本:
unzip -p quark-driver-8.37.3.jar META-INF/maven/com.google.guava/guava/pom.properties -
查看 commons-lang 的打包情况:
unzip -l quark-driver-8.37.3.jar | grep 'META-INF/maven/.*commons-lang.*pom.properties'
| 检查项 | 修复版 | 未修复版 |
|---|---|---|
| guava 版本(命令 1) | version=33.8.0-jre |
version=31.1-jre |
| commons-lang(命令 2) | 只列出 META-INF/maven/org.apache.commons/commons-lang3/pom.properties |
列出 META-INF/maven/commons-lang/commons-lang/pom.properties |
两项都符合修复版才是修复版。如需进一步确认 commons-lang3 的版本,执行 unzip -p quark-driver-8.37.3.jar META-INF/maven/org.apache.commons/commons-lang3/pom.properties,修复版输出 version=3.21.0。