
包管理器: pip
受影响包: authlib (pip)
受影响版本: < 1.6.5
已修复版本: 1.6.5
Authlib的JOSE实现接受无限制的JWS/JWT头部和签名段。远程攻击者可以构造一个base64url编码的头部或签名段达数百兆字节的令牌。在验证过程中,Authlib会在拒绝输入之前解码和解析完整内容,导致CPU和内存消耗达到恶意水平,从而实现拒绝服务攻击。
Authlib ≤ 1.6.3(及更早版本)在验证JWS/JWT令牌时存在此漏洞。具有256KB头部/签名限制的后续快照不受影响。
本地演示(请勿针对第三方系统运行):
环境: Python 3.13.6, Authlib 1.6.4, Linux x86_64, CPUs=8
编译脚本分别打印"ATTACKER"(令牌构造)和"SERVER"(Authlib验证)RSS增量,以便防御者区分客户端准备和服务器端放大。
回归测试authlib/tests/dos/test_jose_dos.py进一步捕获了该问题;保存的original_util.py/original_jws.py复现仍然接受恶意负载。
应用引入解码大小限制的上游补丁:
authlib/authlib
AL-Cybision(报告者)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。