CVE-2023-48223
中已发布
fast-jwt JWT 算法混淆漏洞
- 已发布
- 2023年11月20日
- 已更新
- 2024年8月2日
- 分配 CNA
- GitHub_M
- 观察到的证据
- 2026年8月8日
初级CVSS
5.9/ 10中
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N0.7%
低 · 未来 30 天
- 百分位
- 50.6%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
fast-jwt 提供了快速的 JSON Web Token (JWT) 实现。在 3.3.2 版本之前,fast-jwt 库未能正确防止所有公钥类型的 JWT 算法混淆。`fast-jwt/src/crypto.js` 中的 `publicKeyPemMatcher` 未能正确匹配所有常见的 PEM 公钥格式。要利用此漏洞,攻击者需要构造一个包含 HS256 算法的恶意 JWT 令牌,并使用受害者应用程序的公钥 RSA 密钥进行签名。此攻击仅在受害者应用程序使用包含 `BEGIN RSA PUBLIC KEY` 头的公钥时才会生效。使用 RS256 算法、公钥带有 `BEGIN RSA PUBLIC KEY` 头,并且在调用 verify 函数时未显式提供算法的应用程序,容易受到此算法混淆攻击的影响,该攻击允许攻击者签署任意负载,而这些负载将被验证器接受。版本 3.3.2 包含针对此问题的补丁。作为临时解决方案,请将 `blob/master/src/crypto.js` 的第 29 行修改为包含一个正则表达式。
来源
1概念验证,演示 fast-jwt 库中的 JWT 算法混淆问题。包含易受攻击的服务器、令牌伪造脚本,以及用于安全教育的验证修复方案。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。