KindaRails2Shell - Rails 通过 Active Storage 的严重远程代码执行漏洞 (CVE-2026-66066)
摘要
在 Ruby on Rails 的 Active Storage 中使用默认 Vips 图像处理器时发现了一个严重远程代码执行漏洞 (CVE-2026-66066),影响 Rails 7.x 和 8.x 的默认配置。已发布补丁,建议立即升级。
<p><a href="https://lobste.rs/s/kkobew/kindarails2shell_critical_rce_rails_via">评论</a></p>
查看缓存全文
缓存时间:
2026/07/30 15:52
# KindaRails2Shell — Rails 中通过 Active Storage 的严重 RCE 漏洞 (CVE-2026-66066) | Ethiack — 持续安全的自主道德黑客
Ruby on Rails 支撑着现代网络的重要部分,而 Active Storage(Rails 内置的文件附件和图像处理框架)在大量生产应用中默认启用。
在这些组件中发现了一个严重漏洞,可能导致远程代码执行 (RCE)。更多信息请查看 Ruby on Rails 官方安全公告:https://github.com/rails/rails/security/advisories/GHSA-xr9x-r78c-5hrm
该漏洞最初由 Ethiack (https://ethiack.com/) 研究团队的 André Baptista (0xacb, https://x.com/0xacb)、Bruno Mendes (S3np41k1r1t0, https://x.com/s3np41k1r1t0) 和 Rafael Castilho (Castilho, https://x.com/castilho101) 独立发现并报告,几天后 GMO Flatt Security (https://flatt.tech/en/) 研究团队的 RyotaK (https://x.com/ryotkak) 也报告了该漏洞。随后我们合作协调了披露和修复工作。
## 摘要
- Active Storage + 默认的 vips 处理器是必要的,但仅此还不够。如果你的应用还接受来自不可信用户的图像上传,并且运行在默认的 Rails 7.x/8.x 上,则你会受到影响;对于 6.x,仅当你自定义了 Active Storage 并接受不可信图像上传时才会受到影响。
- 我们目前不会提供 PoC 或技术链细节,但可以假设一旦补丁发布且差异公开,使用 AI 工具的攻击者能够快速重建攻击链,所以不要等待升级。
- 仅修补 Rails 是不够的,如果你的 libvips 版本低于 8.13,还需要单独升级。
- WAF 可能在特定设置下为你争取一些时间,但它不是修复方案。
## 引言
受 wp2shell (https://slcyber.io/research-center/wp2shell-pre-authentication-rce-in-wordpress-core/) 的启发,我们的研究团队跟进了一些先前的线索,发现了一条影响默认 Rails 应用的任意文件读取和远程代码执行链,这些应用使用了带 vips 图像处理器的 Active Storage(vips 是官方 Rails Docker 镜像以及 Debian/Ubuntu 上默认提供的处理器)。
我们将其命名为 **KindaRails2Shell**,因为我们找到了一个 rails2shell... 有点像。有几个必要条件:有些是默认行为,有些只是非常常见的配置,并且在某些场景下根本不需要认证。本文旨在提供该漏洞的初步概述以及如何缓解它。
## 受影响版本
Rails 6.0.0 至 6.1.7.10 可能仅在 Active Storage 的配置偏离默认设置时才受影响,因此正常的 6.x 安装不会暴露于该漏洞。Rails 7.0.0 至 7.2.3.1 和 8.0.0 至 8.1.3 则无需该条件。
| 受影响版本 | 修复版本 | 备注 |
|------------|----------|------|
| 6.0.0 - 6.1.7.10 | 7.2.3.2 | 需要非默认配置 |
| 7.0.0 - 7.2.3.1 | 7.2.3.2 | 默认配置受影响 |
| 8.0.0 - 8.0.5 | 8.0.5.1 | 默认配置受影响 |
| 8.1.0 - 8.1.3 | 8.1.3.1 | 默认配置受影响 |
只有 Vips 图像处理器受影响。使用 Magick 的应用不受此攻击向量的影响。
应用只有在满足以下所有条件时才受影响:
- 使用 libvips 进行 Active Storage 图像处理
- 通过功能或直接上传接受来自不可信用户的图像上传
- 运行的 libvips 构建链接了某些第三方库
请注意,任何接受图像上传并在后续提供处理版本(头像、缩略图、个人资料图片)的用户面向功能也可能受此漏洞影响。多个使用 Ruby on Rails 的项目和第三方软件也可能受影响。
## 影响
- **任意文件读取**,以运行 worker 或进程的用户身份
- **远程代码执行**以及向其他系统的横向移动
目前我们暂时保留关于该攻击链的更多技术细节,以便用户有更多时间打补丁。
## 修复措施
升级是真正重要的修复手段:升级到 Rails 7.2.3.2、8.0.5.1 或 8.1.3.1(或更高版本)。如果你使用的是受影响版本,请尽快打补丁,无论你的具体配置如何,这一点都成立。
请注意,该修复依赖于 libvips 本身版本为 8.13 或更高;更早的 libvips 构建无法禁用所涉及的不安全操作,在这种情况下 Active Storage 会在启动时抛出异常。如果你的 libvips 版本低于 8.13,仅升级 Active Storage 是不够的,你还需要升级 libvips,或者如果应用仅用于图像分析,则移除该依赖。
WAF 在某些部署中可能有帮助,但其有效性很大程度上取决于你的应用存储 Active Storage 文件的位置以及上传如何到达它。不要将其视为补丁。
如果你无法立即升级,还有一个临时措施:在 libvips 8.13+ 上,设置 VIPS_BLOCK_UNTRUSTED 环境变量将阻止该漏洞的利用。如果你使用的是 ruby-vips 2.2.1 或更新版本,从初始化器中调用 `Vips.block_untrusted(true)` 也能防止此漏洞。
## 披露时间线
我们目前暂不公布技术细节、PoC 和 RCE 细节,以便用户有合理的时间打补丁。我们正在与受影响的上游项目协调,一旦补丁广泛可用并应用,将会发布详细分析文章。
## 致谢
感谢 GMO Flatt Security (https://flatt.tech/en/) 的 RyotaK (https://x.com/ryotkak) 的独立发现以及在此次披露中的密切合作(你也可以在这里查看他们的文章:https://blog.flatt.tech/entry/kindarails2shell_rails),以及 Rails 维护者,特别是 Mike Dalessio (flavorjones, https://github.com/flavorjones),还有 Libvips 维护者,感谢他们的帮助和快速响应,使修复得以发布。
相似文章
X AI KOLs Following
Next.js 存在一个严重漏洞(CVSS 8.6),影响版本 13.4.13+、14.x、15.x 以及 16.0.0–16.2.4,允许未经身份验证的攻击者访问内部服务、云凭证和 API 密钥。请立即升级到 15.5.16 或 16.2.5。
Hacker News Top
Ivanti Sentry 中存在一个最高严重性的未授权操作系统命令注入漏洞(CVE-2026-10520,CVSS 10.0),目前已遭主动利用,公开 PoC 已发布,且 CISA KEV 已将其列入,要求 3 天内完成修复。本文详细介绍了如何在网络上识别暴露的 Ivanti Sentry 实例。
Lobsters Hottest
某安全研究人员发现了CVE-2026-46529,这是Linux PDF查看器XReader、Evince和Atril中一个存在10年之久的远程代码执行漏洞,原因是在生成子进程以打开远程文档链接时,参数引用不充分。
Lobsters Hottest
在 Anthropic 的 Claude Code CLI 和 SDK 中发现了严重命令注入漏洞(CVE-2026-35022,CVSS 9.8),攻击者能够通过环境变量、文件路径和身份验证助手执行任意命令并窃取凭据。这些缺陷使得在 CI/CD 环境中能够进行毒化流水线执行攻击,需要立即修补和配置更改。
Hacker News Top
Tailscale SSH 中的漏洞允许用户通过使用以短横线开头的构造用户名来获取 root 权限。该问题已在版本 1.98.9 中修复。