# Node-jws HMAC签名验证漏洞
## 概述
`auth0/node-jws` 是一个用于 Node.js 的 JSON Web Signature 实现库。在特定条件下,该库存在**签名验证不严格**的安全漏洞,影响使用 HS256 算法的应用。
## 影响版本
- `<= 3.2.2`
- `4.0.0`
## 细节
该漏洞出现在使用 `jws.createVerify()` 函数处理 HMAC 算法(如 HS256)时。若应用在 HMAC 密钥查找过程中使用了用户提供的 JSON Web Signature **protected header** 或 **payload** 中的数据,则可能受到攻击。
攻击者可以利用该漏洞篡改签名内容,并绕过原本应验证数据完整性的流程。
## 影响
成功利用此漏洞可使攻击者:
- **绕过签名验证机制**
- 提交**恶意构造的 token** 而不被检测
- 导致身份伪造、权限提升或其他安全决策失效的问题
## 修复版本
- `3.2.3`
- `4.0.1`
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | PoC for CVE-2025-65945 (Improper Verification of Cryptographic Signature in node-jws) | https://github.com/jedisct1/CVE-2025-65945-poc | POC详情 |
标题: Improper HMAC Signature Verification in auth0/node-jws · Advisory · auth0/node-jws · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 漏洞信息摘要
**漏洞名称**: 不正确的 HMAC 签名验证漏洞
**漏洞ID**: CVE-2025-65945
**漏洞等级**: High (7.5/10)
**受影响的版本**:
- <=3.2.2
- 4.0.0
**修复版本**:
- 3.2.3
- 4.0.1
**漏洞描述**:
当使用 `auth0/node-jws` 库和 HS256 算法在特定条件下,存在不正确的签名验证漏洞。
**影响场景**:
若满足以下所有条件,应用将受影响:
1. 使用了 `auth0/node-jws` 实现的 JSON Web 签名 (JWS),且版本为 <=3.2.2 或 4.0.0。
2. 使用 `jws.createVerify()` 函数处理 HMAC 算法。
3. 在 HMAC 密钥查询例程中使用 JSON Web 签名中用户提供的受保护头或负载数据。
**未受影响场景**:
若满足以下任何条件,应用不受影响:
1. 使用 `jws.verify()` 接口(注意:`auth0/node-jsonwebtoken` 用户属于此类别,因此不受影响)。
2. 仅使用非对称算法(如 RS256)。
3. 不在 HMAC 密钥查询例程中使用 JSON Web 签名中用户提供的受保护头或负载数据。
**修复措施**:
升级 `auth0/node-jws` 至版本 3.2.3 或 4.0.1。
**致谢**:
感谢 Félix Charette 发现此漏洞。
标题: Merge commit from fork · auth0/node-jws@34c45b2 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键漏洞信息
#### 1. 漏洞修复描述
- **漏洞ID**: GHSA-869p-cjfg-cm3x
- **修复详情**:
- `createSign` 和 `createVerify` 现在要求在使用 HMAC 算法时必须提供非空的秘密(通过 `opts.secret`, `opts.privateKey` 或 `opts.key`)。
- 升级 JWA 版本至 2.0.1,以解决 Node >= 25 的兼容性问题。
#### 2. 受影响的文件
- `CHANGELOG.md`: 更新了变更日志,记录了修复信息。
- `lib/sign-stream.js`: 修改了 `SignStream` 函数,增加了对非空秘密的检查。
- `lib/verify-stream.js`: 修改了 `VerifyStream` 函数,增加了对非空秘密/密钥的检查。
- `test/jws.test.js`: 添加了相关测试用例,确保修复后的功能正常。
#### 3. 其他相关更新
- 更新了 `package.json` 中的 `jwa` 依赖版本至 2.0.1。
- 提升了对 Node.js 版本的兼容性。
暂无评论