CVE-2025-64508CVE-2025-64508是Bugsink自托管错误追踪工具中的一个高危拒绝服务漏洞。该漏洞存在于Bugsink 2.0.5之前的所有版本,攻击者可以利用brotli压缩炸弹(brotli bomb)对服务器发起攻击。brotli炸弹是一种特殊构造的高度压缩数据流,通常由大量重复的零字节组成,压缩比极高。当服务器接收并尝试解压这些恶意构造的数据时,会在应用各种内存限制之前首先进行解压操作,导致大量内存被消耗,最终造成服务器内存耗尽而崩溃。由于Bugsink的DSN(数据源名称)在许多常见部署场景中是公开的(如JavaScript SDK和移动应用),使得攻击者可以轻易获取必要的连接信息,从而实施攻击。此漏洞与同一项目中的另一个brotli相关漏洞CVE-2025-64509类似但有所不同。
该漏洞的根本原因在于Bugsink在处理brotli压缩数据时缺乏充分的输入验证和资源限制。具体来说:1) 服务器接收brotli编码的数据后,在应用最大内存限制之前就尝试进行解压缩;2) 攻击者可以构造极小体积但解压后体积巨大的brotli炸弹,例如一个几百字节的压缩文件解压后可能达到数GB;3) 当多个并发请求同时发送brotli炸弹时,服务器内存会迅速耗尽;4) 攻击者利用已知的DSN构造恶意请求,绕过认证机制直接触发漏洞。修复后的版本2.0.5在解压前增加了文件大小检查,并对解压后的数据应用了严格的内存限制,防止资源耗尽。攻击者通常需要了解目标系统的DSN才能发起有效攻击,这降低了漏洞的利用门槛,因为许多部署中DSN是硬编码在客户端代码中的。