Rust 库 zip-rs 和 librsvg 中的漏洞

zip-rs 库(用 Rust 编写,每周下载量约为 10 万次)中发现了一个漏洞 (CVE-2026-115905)。该漏洞允许创建看似无害的压缩包,但解压后会提取不相关的文件。文件可以放置在“中央目录”结构之外,导致文件列表显示的内容相同,但使用 ZipStreamReader API 解压时会提取不相关的文件。该漏洞的严重级别为 10(满分 10)。zip-rs 9.0.5 版本已修复此漏洞。

该漏洞是由在使用 ZipArchive API 进行随机归档访问和使用 ZipStreamReader API 进行流式数据提取时使用的头部信息不同的原因造成的。ZipArchive 处理程序依赖于 CDFH(中央目录文件头)头部,而 ZipStreamReader 在提取文件时优先使用 LFH(本地文件头)头部,且未同步重复的元数据。

该漏洞可用于绕过邮件过滤器、杀毒软件和其他安全系统。攻击者可以将文档或图像放置在压缩包的可见部分,并将包含恶意代码的可执行文件放置在隐藏部分。该可执行文件不会被杀毒软件检测到,但会在用户解压缩时保存到磁盘。例如,针对微服务、SaaS 平台和容器隔离系统的攻击,可以通过将看似无害的压缩包(例如样式表、文本文件或图像)解压缩到包含工作项目的目录中来覆盖脚本和可执行文件。

另一个漏洞(CVE-2026-96889)存在于 GNOME 项目用 Rust 语言开发的 librsvg 库中。该库用于 GTK 和 GNOME 应用程序渲染 SVG,并且包含在广受欢迎的 sharp NPM 包中。sharp NPM 包每周下载量高达 80 万次,被近 11 个项目用作依赖项。该漏洞允许在处理特制的 SVG 图像时执行自定义代码。librsvg 的 2.56.6、2.60.3、2.62.4 和 2.63.1 版本以及 sharp NPM 包的 0.35.5 版本已修复此问题。受影响的项目包括 PeerTube 平台(其依赖项已在今天发布的 PeerTube 8.3.2 版本中更新)。

librsvg 使用 libxml2 C 库中的函数来解析 SVG 文件中使用的 XML 标记。此漏洞的根源在于 SVG 文件中嵌套的 XML Xinclude 包含名称重复的重复元素,导致内存释放后仍被访问。崩溃的原因是 librsvg 释放了 libxml2 解析器仍在使用的 XML 元素的内存。

来源: opennet.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster