天下漏洞,尽知其名
MEDIUM

CVE-2026-102274 PyJWT 拒绝服务漏洞

影响畸形 RSA JWK 可导致认证失败或请求级拒绝服务

AI 研判

PyJWT 是 Python 的 JSON Web Token 实现库。在 2.9.0 至 2.14.0 之前的版本中,PyJWKSet 未捕获 RSAAlgorithm.from_jwk 对畸形 RSA JWK 组件抛出的普通 ValueError。当 JWK Set 中同时包含畸形 RSA 密钥和可用密钥时,单个畸形成员会导致整个 PyJWKSet 构造失败。

影响范围

PyJWT

PyJWT 2.9.0 起至 2.14.0 之前的版本;2.14.0 已修复。

漏洞详情

漏洞类型为异常处理不当导致的拒绝服务。PyJWKSet 在解析 JWK Set 时,若其中某个 RSA 密钥的组件格式畸形,RSAAlgorithm.from_jwk 会抛出未被捕获的 ValueError,从而中断整个密钥集构建。攻击者若能影响 JWK Set 内容,即可使依赖该密钥集的应用认证流程失败。

利用条件与风险

利用前提是攻击者能够向应用提供或注入包含畸形 RSA 密钥的 JWK Set,或目标 JWK Set 本身被污染;实战中可造成认证不可用或请求级拒绝服务,CVSS 5.9 属中危。

修复建议

升级至 PyJWT 2.14.0 或更高版本。临时缓解措施暂无公开信息,可考虑在应用层对 JWK Set 解析异常进行捕获与容错处理。

原始情报

PyJWT is a Python implementation of JSON Web Token standards. From 2.9.0 until 2.14.0, PyJWKSet does not catch the plain ValueError raised for malformed RSA JWK components by RSAAlgorithm.from_jwk in jwt/api_jwk.py. This occurs when a JWK Set contains a malformed RSA key alongside otherwise usable keys. As a result, one malformed member aborts construction of the entire PyJWKSet. Consequently, applications can experience authentication failures or request-level denial of service. This issue is fixed in version 2.14.0.