Image I/O & WebP/libwebp 零日漏洞 – Kudelski 安全研究
Google/WebP 堆缓冲区溢出漏洞(CVE-2023-4863)
作者:Kudelski 安全威胁检测与研究团队的 Michal Nowakowski
摘要
基于 9 月 7 日发现的漏洞研究(该漏洞曾危害 Apple iOS 16.6 并允许安装 Pegasus 间谍软件),Citizen Lab 与 Apple 安全工程和架构团队共同向 Google 通报了 Google Chrome 中潜在的漏洞利用发现,并为该漏洞分配了独立的 CVE-2023-4863。9 月 11 日,Google 发布了针对 Mac、Linux 和 Windows 系统桌面版 Chrome 的稳定通道更新。
进一步的分析和调查显示,上述漏洞的影响不仅限于 Google Chrome,而是更为广泛。实际上,任何依赖 libwebp 库处理 WebP 图像的应用程序都可能受到此攻击的影响。
9 月 27 日,Google 决定修改 CVE-2023-4863 的条目,并将其范围扩展至可能受影响的多种常用应用程序、库、框架和操作系统。
受影响的系统和/或应用程序
在受此漏洞影响的系统列表(超过 700 个)中,包括广泛使用的软件,如:
- Adobe Photoshop
- Mattermost
- Microsoft Teams
- MongoDB Compass
- TIDAL
其中许多已经打补丁。例如包括:
应用程序
- Google Chrome
- Mozilla
- Brave Browser
- Microsoft Edge
- Tor Browser
- Opera
- Vivaldi
- Bitwarden
操作系统
- Debian
- Ubuntu
- Alpine
- Gentoo
- RedHat
- SUSE
- Oracle
- Amazon Linux
其他软件
- Zulip Server 7.4 安全版本
- Electron
- Xplan
- Signal Desktop
- Honeyview
技术细节 / 攻击概述
此漏洞利用在正确执行时,允许远程攻击者使用特制的无损 WebP 文件(该文件可在多个浏览器、操作系统和应用程序中运行)将数据保存到堆边界之外。
WebP 是一种无损图像格式,有时称为 VP8L,它允许以比传统格式(如 PNG 和 JPEG)小得多的文件大小在网页上显示高质量图像。另一方面,libwebp 是一个允许程序支持 WebP 文件格式的库。
偶然发现 WebP 漏洞的 Apple 和 Citizen Lab 实际上正在调查一个在名为 Image I/O 的框架中发现的漏洞利用,该框架是 Apple 操作系统(如 iOS、iPadOS、watchOS 和 macOS)的一部分,并允许读取和写入文件格式,包括 WebP 文件。整个思路是通过将 huffman_table 指针移动到预先计算的 kTableSize 缓存大小之外,从而溢出 ReadHuffmanCodes(src/dec/vp8l_dec.c)中的 huffman_tables 分配。实际上,根据颜色缓存位数的不同,有几种不同的预先计算的桶大小,而 kTableSize 仅考虑了前 8 位表查找,跳过了剩余的 8 位。当 BuildHuffmanTable() 尝试填充二级表时,它可以在边界之外写入数据。
针对此漏洞的攻击范围可能从拒绝服务(DoS)到可能的远程代码执行(RCE)。
建议和缓解措施
防火墙级别禁用 WebP
- 修改防火墙规则以阻止传入和传出的 .webp 文件。
IDS/IPS 级别
- 确保入侵检测系统(IDS)和入侵防御系统(IPS)已更新与 libwebp 漏洞相关的签名。
Web 内容过滤级别
- 配置 Web 内容过滤器以阻止或警告从未受信任或未识别的源下载 WebP 图像的尝试。
网络级别
- 考虑将严重依赖图像处理的系统隔离在分段网络区域中,减少潜在暴露。
- 对处理 WebP 图像的系统实施严格的访问控制,确保只有必要的应用程序和用户可以与之交互。
补丁管理
- 使用自动化工具扫描基础设施中依赖 libwebp 库的软件,确保没有遗漏实例。
收紧配置
- 在可能的情况下,在应用补丁之前禁用应用程序中的 WebP 处理功能。
解决方案
建议将所有受影响的系统修补到推荐版本,并检查是否存在受影响的软件。
网络融合中心正在做什么
CFC 正在审查我们环境中所有受影响的应用程序,以确保没有影响或漏洞利用。
对于已订阅漏洞服务的客户,您将在下一次漏洞扫描运行时收到关键漏洞报告。
我们将继续关注此漏洞,以在提供进一步更新时保持最新。
来源
- CVE-2023-41064、CVE-2023-4863、CVE-2023-5129:ImageIO 和 WebP/libwebp 零日漏洞常见问题解答 – Blog | Tenable®
- Apple 和 Google 的不完整披露为“零日猎人”创造了“巨大盲点” | Ars Technica
- https://www.tenable.com/cve/CVE-2023-4863/plugins
- Chrome 发布:桌面稳定通道更新(googleblog.com)