Aircompressor压缩库漏洞:恶意输入可导致敏感信息泄露

本文详细分析了CVE-2025-67721漏洞,该漏洞存在于airlift aircompressor Java压缩库的Snappy和LZ4解压器中。攻击者可通过特制的压缩数据,使应用在复用输出缓冲区时泄露之前残留的敏感信息。漏洞已在3.4版本修复。

CVE-2025-67721:CWE-201:airlift aircompressor中发送数据时插入敏感信息

严重性: 中等 类型: 漏洞

CVE-2025-67721

Aircompressor是一个将Snappy、LZO、LZ4和Zstandard压缩算法移植到Java的库。在3.3及以下版本中,基于Java的Snappy和LZ4解压器实现对畸形数据的错误处理,允许远程攻击者通过精心构造的压缩输入读取先前缓冲区的内容。对于某些精心构造的压缩输入,输出缓冲区中的元素可能最终出现在未压缩的输出中,可能导致敏感数据泄露。这对于复用相同输出缓冲区来解压缩多个输入的应用程序是相关的。例如,为了提高性能而分配固定大小缓冲区的Web服务器就可能出现这种情况。GHSA-cmp6-m4wj-q63q中存在类似的漏洞。此问题已在3.4版本中修复。

AI分析

技术摘要 CVE-2025-67721影响airlift aircompressor库,该库提供了Snappy、LZO、LZ4和Zstandard等流行压缩算法的Java移植。3.3及以下版本在Snappy和LZ4解压实现中存在一个漏洞,原因是错误处理了畸形的压缩输入数据。具体来说,在解压精心构造的恶意输入时,解压器可能会无意中将先前解压操作残留的数据包含在输出缓冲区中。发生这种情况是因为某些应用程序为了优化性能,在多次解压调用中复用同一个固定大小的输出缓冲区。该漏洞被归类为CWE-201(向发送的数据中插入敏感信息)和CWE-125(越界读取)。攻击者可以通过向使用aircompressor的易受攻击的Java应用程序发送特制的压缩数据来利用此漏洞,导致先前保存在输出缓冲区中的敏感信息泄露。攻击向量是基于远程网络的,无需身份验证或用户交互,影响范围局限于应用程序内的解压过程。该漏洞不会影响整个系统的机密性,但可能暴露敏感数据片段。该问题于2025年12月12日公开披露,并在aircompressor 3.4版本中修复。迄今为止,尚未有野外利用的报道。

潜在影响 对于欧洲组织,此漏洞对使用aircompressor 3.4以下版本解压Snappy或LZ4压缩数据的Java应用程序构成敏感数据泄露风险。这对于出于性能原因处理压缩载荷并复用输出缓冲区的Web服务器、中间件或微服务尤其相关。泄露可能暴露机密信息,例如驻留在内存缓冲区中的会话令牌、个人数据或专有信息。虽然该漏洞不允许远程代码执行或系统完全被攻陷,但如果个人数据暴露,机密性破坏可能导致违反GDPR的监管不合规。此外,金融、医疗保健和政府等经常处理敏感数据的行业的组织可能面临声誉损害和法律后果。中等严重性评级反映了无需认证即可利用的中等影响和易用性。暂无已知野外利用减少了直接风险,但不应延迟修复。

缓解建议 欧洲组织应立即将所有airlift aircompressor实例升级到3.4或更高版本,以消除此漏洞。此外,开发人员应审计其Java应用程序,以识别解压过程中对固定大小输出缓冲区的任何复用情况,并考虑每次解压调用隔离缓冲区使用,以防止数据泄露。实施输入验证,并在处理流程早期拒绝畸形的压缩数据。采用运行时内存清理技术,在复用前清除缓冲区。使用精心构造的压缩输入进行彻底测试,以验证没有残留数据泄露。监控网络流量,查找可能表明利用尝试的异常压缩载荷。最后,将此漏洞纳入漏洞管理和补丁工作流程,以确保所有环境的及时更新。

受影响国家 德国、法国、英国、荷兰、瑞典、意大利、西班牙、波兰

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计