# Jervis SHA-256填充漏洞
## 概述
Jervis 是一个用于 Job DSL 脚本和共享 Jenkins Pipeline 库的工具库。在版本 2.2 之前,其在处理 SHA-256 哈希值时存在字符串填充长度不足的问题。
## 影响版本
- 受影响版本:Jervis < 2.2
- 修复版本:Jervis 2.2 及以上
## 细节
Jervis 在处理 SHA-256 哈希时使用了 `padLeft(32, '0')`,但 SHA-256 输出为 32 字节,对应 64 个十六进制字符。因此,正确操作应使用 `padLeft(64, '0')` 以确保哈希值完整对齐。当前错误调用会导致哈希值截断或填充不足。
## 影响
该问题可能导致哈希标识不完整或冲突,影响构建标识、缓存机制或安全性相关功能,进而引发潜在的构建错误或逻辑漏洞。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: SHA-256 Hex String Padding Bug · Advisory · samrocketman/jervis · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 漏洞关键信息
#### 漏洞概述
- **CVE ID**: CVE-2025-68702
- **严重性**: 高
#### 影响的包
- **Package**: net.gleske:jervis (Maven)
- **受影响版本**: < 2.2
- **修复版本**: 2.2
#### 漏洞描述
- **问题代码**: `SecurityIO.groovy` 文件中 `sha256Sum` 方法的实现错误,导致哈希长度不一致。
- **具体问题**: `padLeft(32, '0')` 应该改为 `padLeft(64, '0')`,因为 SHA-256 生成 32 字节 = 64 个十六进制字符的哈希值。
#### 影响
- **不一致的哈希长度**: 当前前导字节为零时。
- **哈希比较失败**: 对于带有前导零的哈希值。
- **潜在的安全问题**: 在基于哈希的比较中。
- **可能导致微妙的 bug**: 在依赖一致哈希长度的系统中。
#### 修复措施
- **升级到 Jervis 2.2** 版本。
#### 解决方案
- 使用其他 SHA-256 哈希函数或进行升级。
标题: Merge branch 'advisory-fix-1' · samrocketman/jervis@c3981ff · GitHub -- 🔗来源链接
标签:x_refsource_MISC
暂无评论