关键 Rails 漏洞可让未经身份验证的攻击者通过图片上传读取服务器文件
- 浏览次数 2416
- 喜欢 0
Ruby on Rails 已发布针对一个关键 Active Storage 漏洞的修复方案,该漏洞可能允许未经身份验证的攻击者通过精心构造的图片上传从应用服务器读取任意文件。
该漏洞编号为 CVE-2026-66066(CVSS 评分:9.5),可暴露 Rails 进程环境和机密信息,如 secret_key_base、Rails 主密钥、数据库密码、云存储凭据和 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 时受影响,而 Vips 在 Rails 6 中并非默认处理器。
官方安全公告列出了更广泛的包范围:activestorage < 7.2.3.2。两个研究团队均将实际的 Vips 攻击路径定位在 Rails 6.0 及更高版本。使用 MiniMagick 的应用不会通过此特定攻击路径暴露。Rails 7.0 和 7.1 已停止支持,没有修复版本,因此这些版本分支上的应用必须升级到 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 警告称,应用补丁并不会使可能已被窃取的凭据失效。
该漏洞位于 Active Storage 和 libvips 之间的信任边界。Rails 安全公告称,libvips 支持加载器、保存器和其他操作,其中一些由第三方库支持,并因对恶意输入不安全而被标记为"未模糊测试"或"不可信"。Active Storage 未阻止它们,从而允许精心构造的上传调用其中一个操作并泄露 Rails worker 可读取的文件。
存在漏洞的应用无需暴露专门的调整大小或缩略图操作。"生成变体并非独立要求,"Rails 表示。公开的补丁还显示,Vips 分析器和转换器都将不可信的附件传递给了不安全操作。
一次成功的请求使攻击者获得任意文件读取原语。代码执行或横向移动将取决于攻击者提取到的内容以及这些凭据能够访问的范围。Rails 告知运营者轮换 secret_key_base、主密钥和解密凭据、数据库凭据、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 日发布。
The Hacker News 已就利用情况和受影响版本联系了 Rails 安全团队,并就攻击链联系了 Ethiack。
Rails 和研究人员在发布时均未报告野外利用。The Hacker News 于 7 月 29 日 17:30 UTC 进行的审查发现,CVE-2026-66066 未出现在 CISA 2026.07.27 版本的已知被利用漏洞目录中。
目前没有关于受影响应用或已知受害者的可靠统计。9.5 的评分描述的是 CVSS 下的严重性,而非暴露的部署数量:存在漏洞的部署还必须使用 Vips、接受不可信的图片上传,并在其 libvips 构建中包含可利用的操作。