Ruby on Rails 框架曝高危漏洞 CVE - 2026 - 66066,企业需紧急应对!
2026/8/5 18:54:01 网站建设 项目流程

漏洞概述

Ruby on Rails(“Rails”)Web 应用程序框架近日曝出一个新的严重漏洞 CVE - 2026 - 66066,它能让看似无害的图片成为窥探秘密的入口。该漏洞于 7 月 30 日披露,严重程度评分高达 9.5 分(满分 10 分),对运行处理用户上传图片的 Rails 应用程序的企业构成重大威胁。此漏洞被称为“KindaRails2Shell”,它利用了开源框架中过于轻信的 Active Storage 组件,使未经验证的攻击者能够读取敏感文件,甚至可能进行远程代码执行(RCE)。Active Storage 的 7.2.3.2、8.0.5.1 和 8.1.3.1 版本已修复该问题,运行 Rails 的企业应立即更新。

Beauceron Security 的 David Shipley 表示:“攻击者上传的看似是图片,实则是能窃取秘密的代码,这才是最要命的。”

攻击者获取关键权限

Ruby on Rails 是一个开源的服务器端应用程序框架,用于构建全栈 Web 应用程序和应用程序编程接口(API)。它因可扩展性强、易于学习和使用、支持快速应用开发、拥有超 1000 名工程师组成的活跃社区进行开发和维护,以及近两百万行预构建代码的丰富库,而受到开发者的欢迎。

CVE - 2026 - 66066 专门针对 Rails 内置的 Active Storage 组件,该组件允许用户将文件上传到云服务或本地磁盘,并将其与应用程序关联。具体而言,此漏洞利用了 Active Storage 与 libvips 图像处理库交互生成图像的方式。libvips 包含一些所谓的“未经过模糊测试”的操作,这些操作未通过模糊测试技术来抵御恶意输入,模糊测试可检测它们在何处崩溃、泄露数据或以其他异常方式运行。这使得它们在处理不可信内容时不安全,但 Active Storage 并未充分禁用这些操作。

SOCRadar 的首席信息安全官 Ensar Seker 解释道:“CVE - 2026 - 66066 特别危险,因为攻击者可能无需账户或特权访问权限。”攻击者可以通过上传特制文件来利用这个不安全的管道,诱使 Active Storage 让他们访问 Rails 进程有权限访问的文件,甚至是应用程序处理环境中的高度敏感文件。Seker 解释说,实际上,这可能会暴露环境变量、Rails 应用程序密钥、数据库凭证、云访问密钥、API 令牌以及连接服务的凭证。攻击者还可以获取用于对 cookie、凭证和会话数据进行签名和加密的 secret_key_base。一旦 secret_key_base 被泄露,攻击者实际上就掌握了应用程序的关键权限。

Seker 说:“直接的漏洞是任意文件读取问题,但窃取 Rails 的 secret_key_base 等秘密可能会将信息泄露问题演变成更广泛的安全漏洞。”根据应用程序的不同,攻击者可能会伪造可信的应用程序数据或会话,访问数据库和云服务,横向渗透到连接的系统,或者实现远程代码执行。Seker 表示,这种攻击升级路径正是该漏洞被认定为严重漏洞的原因。“看似常规的图像上传功能,如个人资料图片、头像或缩略图生成器,可能会成为进入应用程序底层基础设施的入口。”

如何判断是否受影响

当应用程序配置为使用 libvips 进行 Active Storage 图像处理(自 Rails 7.0 起为默认行为),并且接受来自不可信或未经验证用户的图像上传时,就会受到影响。Seker 建议企业审核每个内部和第三方应用程序,以确定它们是否如此配置,并立即对 Rails 和 Active Storage 进行补丁修复。他们还应该检查每个接受图像的功能,包括头像、支持附件、产品图片和管理上传功能。他说,仅升级 Rails 是不够的,如果其底层仍安装有较旧版本的 libvips,libvips 必须是 8.13 或更高版本。

Seker 指出,Rails 项目提供的取证指南和工具可以帮助企业确定应用程序是否易受攻击或文件是否可被利用。此外,审查应用程序、代理、对象存储和图像处理日志,以查找可疑的上传或异常请求也很重要。管理员还应轮换 Rails 中的 secret_key_base 和其他所有凭证,使活跃会话失效,并调查下游系统中可能暴露的凭证。Seker 说:“安全团队应将此视为潜在的秘密泄露事件,而不仅仅是一次补丁管理操作。”

不要轻信图像处理管道

Seker 指出,复杂的图像库支持多种格式,依赖众多解析器和第三方组件,从而形成了广泛的攻击面。因此,这些库“应被视为不可信的代码执行区域”。他建议将图像处理隔离在专用的沙箱、容器中,或者限制在对文件系统访问权限最小的工作进程中。不应有不必要的网络连接,也不应允许访问应用程序的文件或秘密。应应用严格的白名单,对文件内容进行人工验证,并在处理上传文件之前进行扫描,将其存储在应用程序目录之外。

Seker 表示,其他额外的控制措施应包括使用短期且范围狭窄的凭证、限制出站网络访问、监控依赖项和软件组成,以及进行自动化测试,以确认升级后禁用了危险的编解码器或操作。他指出:“更广泛的教训是,组织不能仅仅通过询问是否‘使用 Rails’来评估风险。”他指出,运行相同 Rails 版本的两个应用程序,根据其图像处理器、上传路径和操作系统包的不同,可能面临截然不同的风险。这使得了解运行时配置、库和应用程序功能变得至关重要。他补充说,此事件也证明了在漏洞响应中轮换密钥的重要性。“当漏洞允许任意文件访问时,安装补丁可以关闭入口,但无法撤销可能已被复制的凭证。”

不要以为自己高枕无忧

Beauceron 的 Shipley 指出,此漏洞凸显了软件物料清单(SBOM)的完美用例,它可以加速发现易受攻击的软件并进行分类处理。企业除了隔离系统和打补丁之外,还可以采用智能 Web 应用程序防火墙进行监控和干预。他说:“在任何严重漏洞事件中,你最不想听到的就是‘任意代码执行’和‘远程代码执行’,这两者都可能意味着坏消息。”

他还指出,有趣的是,此次漏洞披露过程被打乱了。由于几位研究人员逆向工程了攻击方法并发布了概念验证代码,Rails 比原计划提前近一个月发布了有关该漏洞的技术细节以及评估应用程序漏洞和查找数据泄露证据的取证工具。Seker 指出,概念验证代码的出现“大大增加了机会主义扫描和攻击尝试的可能性”。因此,他说:“即使那些没有发现明显被攻击迹象的组织,也不应认为仅靠打补丁就能消除之前泄露的秘密所带来的风险。”

分类:漏洞、安全、开发工具、软件开发、Web 开发、开发方法

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询