CVE-2025-63811CVE-2025-63811是发现于jose2go库中的一个拒绝服务漏洞。jose2go是一个流行的Go语言JSON Web Token (JWT)和JSON Web Encryption (JWE)实现库,广泛应用于Web应用的身份认证和加密通信场景。该漏洞影响jose2go 1.5.0至1.7.0版本,攻击者可以通过构造具有极高压缩比的恶意JWE token来触发该漏洞。当目标系统尝试解析和解密这些特制的JWE token时,会导致内存消耗急剧增加或CPU资源耗尽,从而造成服务中断。由于该漏洞的利用无需认证且可远程触发,攻击者可以通过任何向目标系统提交JWT/JWE token的接口发起攻击,如登录接口、API网关、SSO系统等。此漏洞的危险性在于其攻击面广、利用门槛低,且压缩炸弹解压后可能产生原始数据的数百倍大小,对服务器资源造成严重威胁。CVSS评分7.5,属于高危漏洞。
该漏洞的根本原因在于jose2go库在处理JWE token时缺乏对压缩数据比率的有效验证。JWE标准支持使用DEFLATE算法进行内容压缩,攻击者可以利用这一特性构造所谓的「压缩炸弹」(Compression Bomb)。攻击者创建一个原始数据量很小但压缩比极高的文件,例如一个仅几十字节的压缩数据,解压后可以膨胀到数十MB甚至更大。当jose2go库调用zlib.NewReader()或类似的解压函数处理此恶意JWE token时,会将整个解压后的内容加载到内存中。如果攻击者连续提交多个此类恶意请求,可能导致服务器内存耗尽、OOM Killer触发或CPU持续高负载,最终造成应用程序崩溃或无法响应正常请求。漏洞利用的关键在于JWE的enc字段指定了'DEF'压缩算法,攻击者将精心构造的压缩数据放入encrypted key之后的内容部分。防御者应在应用层实现解压数据的最大尺寸限制,或在调用解压函数前验证压缩比。