CVE-2026-35039fast-jwt是一个快速的JSON Web Token (JWT)实现库。在0.0.1至6.2.0之前的版本中存在严重漏洞,当配置的`cacheKeyBuilder`方法无法为不同令牌生成唯一键值时,会导致缓存碰撞。在验证过程中,这使得有效令牌可能返回其他有效令牌的声明,从而导致用户身份被错误识别,攻击者可利用此漏洞冒充其他用户。
该漏洞源于fast-jwt库的令牌验证缓存机制。为了提升性能,库会对已验证的令牌进行缓存。默认情况下,缓存键基于令牌内容生成,但允许开发者通过`cacheKeyBuilder`自定义逻辑。如果开发者错误实现该方法(例如仅使用令牌头部而非完整签名作为键),两个结构不同但头部相似的令牌将生成相同的键。利用时,攻击者需先诱导系统验证一个高权限令牌(如管理员Token),该令牌被缓存。随后攻击者发送一个精心构造的普通用户Token,其头部与高权限Token一致。由于缓存键碰撞,系统直接返回缓存的高权限数据,导致攻击者在未掌握私钥的情况下获得管理员权限。