CVE-2026-44459Hono是一个支持任意JavaScript运行时的Web应用框架。在4.12.18版本之前,hono/utils/jwt组件对JWT中的NumericDate声明(exp、nbf、iat)验证不当,允许包含非规范声明值的令牌绕过基于时间的检查。该问题不可被匿名攻击者利用,仅在畸形声明值到达verify()函数时触发,通常发生在应用自身签发此类令牌或签名密钥被控制的情况下。
该漏洞根源在于Hono框架JWT工具类对时间相关声明(NumericDate)的校验逻辑不严格。根据JWT规范(RFC 7519),exp(过期时间)、nbf(生效时间)和iat(签发时间)声明必须是NumericDate类型,即包含日期或时间的JSON数值。在受影响版本中,verify()函数在验证这些声明时,未充分校验数据类型,导致非规范值(如字符串、布尔值或特殊对象)能够通过解析。当应用程序签发包含畸形时间声明的JWT时,这些令牌本应因格式错误或时间过期被拒绝,但由于验证缺陷,它们可能绕过基于时间的检查。虽然该漏洞CVSS评分较低(需高权限),但在攻击者能影响令牌生成或控制签名密钥的场景下,利用此漏洞可导致身份验证机制失效,允许使用无效令牌维持访问权限,从而影响系统的机密性和完整性。