CVE-2026-28490CVE-2026-28490是Authlib Python库中的一个高危安全漏洞,存在于JSON Web Encryption (JWE)的RSA1_5密钥管理算法实现中。Authlib是一个用于构建OAuth和OpenID Connect服务器的Python库。该漏洞的本质是密码学填充Oracle攻击(Padding Oracle Attack),这是Bleichenbacher攻击的变体。攻击者可以利用此漏洞对加密通信进行解密攻击,窃取敏感信息。问题在于Authlib在默认算法注册表中注册了RSA1_5算法,且无需用户明确选择即可使用。更严重的是,Authlib的实现主动破坏了底层密码学库正确实现的常数时间Bleichenbacher缓解措施,从而将原本安全的实现转变为易受攻击的状态。该漏洞影响Authlib 1.6.9之前的所有版本,CVSS评分6.5,属于中等严重程度。攻击者可通过网络远程利用此漏洞,无需认证即可发起攻击,主要影响数据的机密性。
该漏洞是经典的Bleichenbacher填充Oracle攻击的变体。Bleichenbacher攻击于1998年首次公开,针对使用RSA PKCS#1 v1.5填充的TLS实现。攻击原理是利用RSA解密过程中的填充验证错误。Authlib的问题在于其JWE RSA1_5实现中:1) 将RSA1_5注册为默认算法,用户无需显式选择即可使用不安全的算法;2) 在处理RSA解密时,Authlib的实现会泄露填充验证的中间状态信息,破坏了底层密码学库的常数时间保护机制。具体来说,当接收加密的JWE令牌时,Authlib会执行RSA解密并验证PKCS#1填充。如果攻击者能够观察到解密失败时的错误响应(如填充格式错误、截断等),就可以通过发送精心构造的密文来逐步推断出明文内容。攻击者需要构造特定格式的密文,通过观察Oracle响应(有效填充vs无效填充),使用二分搜索等技术在约2^20次查询内解密任意密文。此攻击的复杂度为约100万次请求,对于攻击者来说是可以实现的。