严重 Rails 漏洞可让未认证攻击者通过图像上传读取服务器文件

严重 Rails 漏洞可让未认证攻击者通过图像上传读取服务器文件

导语:Ruby on Rails 修复了 Active Storage 中一个 CVSS 9.5 分的严重漏洞(CVE-2026-66066),未认证攻击者可通过精心构造的图像上传读取应用服务器上的任意文件,从而获取 secret_key_base、master key、数据库密码等机密,严重情况下可导致远程代码执行或横向移动。

Ruby on Rails 已发布针对 Active Storage 中一个严重漏洞的修复,未认证攻击者可通过精心构造的图像上传从应用服务器读取任意文件。

该漏洞编号为 CVE-2026-66066(CVSS 评分:9.5),可泄露 Rails 进程环境以及 secret_key_base、master key、数据库密码、云存储凭证和 API 令牌等机密。这些机密信息可能使攻击者实现远程代码执行(RCE)或在已连接系统中进行横向移动。

受影响的应用程序同时使用 libvips 进行 Active Storage 图像处理,并接受来自不可信用户的图像上传。Rails 在 load_defaults 7.0 下默认选择 Vips,后续版本的默认设置中延续了该选择。

Ethiack 与 GMO Flatt Security 列出的受影响版本范围包括:Rails 7.0.0 至 7.2.3.1、Rails 8.0.0 至 8.0.5,以及 Rails 8.1.0 至 8.1.3。在 Rails 6.0.0 至 6.1.7.10 版本中,仅当 Active Storage 被配置使用 Vips 时才会受影响;Rails 6 中 Vips 并非默认处理器。

官方公告列出了更广泛的包范围:activestorage < 7.2.3.2。两支研究团队将实际可行的 Vips 攻击路径定位于 Rails 6.0 及以后版本。使用 MiniMagick 的应用程序不会通过此特定攻击路径受到威胁。Rails 7.0 和 7.1 已停止维护(EOL),不会再发布修复版本,因此这些分支上的应用程序必须升级到 Rails 7.2.3.2 或更高版本。

运维人员应升级到 Rails 7.2.3.2、8.0.5.1 或 8.1.3.1,并轮换所有应用进程可读取的机密。已修复的安装还需要 libvips 8.13 或更高版本;若安装了 ruby-vips,则需要 ruby-vips 2.2.1 或更高版本。

截至 2026 年 7 月 29 日 17:30 UTC,两支研究团队均未发布概念验证(PoC)。The Hacker News 的精确词搜索显示,在同一时间点的索引 GitHub、GitLab、Exploit-DB 或 Packet Storm 结果中均未发现漏洞利用仓库。Rails 与研究人员也均未报告在野利用,CVE-2026-66066 尚未被列入 CISA 已知被利用漏洞(Known Exploited Vulnerabilities)目录 2026.07.27 版本中。Rails 警告称,应用补丁并不会使可能已遭窃取的凭证失效。

原文配图

该漏洞位于 Active Storage 与 libvips 之间的信任边界。Rails 安全公告指出,libvips 支持加载器、保存器及其他操作,其中一些由第三方库支持,并被标记为 "unfuzzed" 或 "untrusted",因为它们对恶意输入并不安全。Active Storage 并未阻止这些操作,使得攻击者能够通过精心构造的上传调用其中某个操作,从而泄露 Rails 工作进程可读取的文件。

易受攻击的应用程序并不需要暴露专门的缩放或缩略图操作。Rails 表示:"生成变体并非一个必备条件。"公开的补丁还显示,Vips 分析器与转换器都将不可信的附件传递给了不安全的操作。

一次成功的请求可使攻击者获得任意文件读取原语。能否实现代码执行或横向移动取决于攻击者提取的内容以及这些凭证所能触及的范围。Rails 建议运维人员轮换 secret_key_base、master key 及解密后的凭证、数据库凭证、Active Storage 服务密钥以及第三方令牌。

该补丁在 Active Storage 启动时调用 Vips.block_untrusted(true)。无法立即更新 Rails 的应用程序可在运行 libvips 8.13 或更高版本时设置 VIPS_BLOCK_UNTRUSTED,或在 ruby-vips 2.2.1 或更高版本下调用 Vips.block_untrusted(true)。Rails 提示,早期版本的 libvips 无法阻止这些操作,因此应用程序必须升级 libvips 或将其从应用中移除。

Rails 致谢 Ethiack 的 André Baptista、Bruno Mendes 和 Rafael Castilho,以及 GMO Flatt Security 的 RyotaK,感谢他们独立报告该问题。研究人员尚未披露恶意格式、文件读取构造方式或 RCE 攻击链。Rails 表示,更多技术细节将不晚于 2026 年 8 月 28 日发布。

目前尚无关于易受攻击应用程序数量或已知受害者的可靠统计。CVSS 9.5 的评分反映的是漏洞严重程度,并不等同于实际暴露的部署数量:一个易受攻击的部署还必须同时使用 Vips、接受不可信的图像上传,并且其 libvips 构建中包含可被利用的操作。


来源信息

来源:The Hacker News

原文链接:https://thehackernews.com/2026/07/critical-rails-flaw-could-let.html

作者:info@thehackernews.com (The Hacker News)