您遇到的漏洞是 Gson 2.2.4 版本中的 反序列化漏洞(CVE-2022-25647,GHSA-4jrv-ppp4-jm57),该漏洞允许攻击者通过恶意 JSON 数据触发任意代码执行(反序列化安全问题)。
解决方案
1. 升级到安全版本的 Gson
官方已修复此问题,建议升级至以下安全版本之一:
<!-- 推荐使用最新稳定版 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version> <!-- 或更高版本 -->
</dependency>
检查最新版本:Maven Central - Gson
2. 排除易受攻击的传递依赖
如果您的项目间接依赖旧版 Gson(例如通过其他库),可以使用 Maven 的 <exclusions>
:
<dependency>
<groupId>some.library</groupId>
<artifactId>library-with-gson</artifactId>
<version>x.y.z</version>
<exclusions>
<exclusion>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 然后显式引入安全版本的 Gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
3. 漏洞详情
CVE / GHSA | 影响版本 | CVSS评分 | 风险 |
---|---|---|---|
CVE-2022-25647 | Gson ≤ 2.8.9 | 7.7 (High) | JSON反序列化时可导致RCE |
GHSA-4jrv-ppp4-jm57 | Gson ≤ 2.8.x | - | Same as CVE |
4. Checkmarx© 提供的修复建议
Checkmarx(静态代码分析工具)检测到该漏洞后,通常会建议:
- 升级依赖(最直接的方法)。
- 禁用不安全特性(如果无法升级):
// 避免使用 `fromJson()` 处理不可信数据 Gson gson = new GsonBuilder() .disableHtmlEscaping() .setLenient() // ❌避免使用宽松模式 .create();
- 替换为其他库(如 Jackson)。
5. Maven Dependency Tree
运行以下命令检查谁引入了旧版 GSON:
mvn dependency:tree -Dincludes=com.google.code.gson:gson
# Output示例:
[INFO] +- some.library:library-with-gson:jar:1.0
[INFO] | \- com.google.code.gson:gson:jar:2.2.4 (易受攻击)
总结
✅ 立即行动:
1️⃣ pom.xml
中升级或排除旧版GSON。
2️⃣ mvn dependency:tree
确认无残留旧版本。
3️⃣ CI/CD流程中集成漏洞扫描工具(如OWASP Dependency-Check)。
如需进一步帮助,请提供完整的 pom.xml
!
内容由零声教学AI助手提供,问题来源于学员提问