关于警惕 Ruby on Rails 远程代码执行漏洞的通知

关于警惕 Ruby on Rails 远程代码执行漏洞的通知

近日,安全中心监测到Ruby on Rails 于3月13日披露的远程代码执行高危安全漏洞(漏洞编号:CVE-2019-5420)开始出现在野攻击行为。
安全攻防团队研究发现部分用户可能已经被攻击,特此发出预警,建议用户及时开展漏洞修复工作,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。

【漏洞详情】
Ruby on Rails是Rails团队的一套基于Ruby语言的开源Web应用框架。
CVE-2019-5420:Ruby on Rails 开发模式远程代码执行漏洞,对目标应用具备一定了解的攻击者可猜解开发模式的 secret token 信息,并利用该信息与 Rails 的内部组件结合实现远程代码执行。
CVE-2019-5418:Ruby on RailsAction View任意文件泄露漏洞,漏洞来源于 Action View 组件,攻击者可构造特定的 Accept 请求头与 render file: 调用结合利用,可导致目标服务器上的任意文件被渲染导致敏感信息泄露。

【风险等级】
高风险

【漏洞风险】
远程代码执行

【影响版本】
CVE-2019-5420 受影响版本如下:
Ruby on Rails 6.0.0.X
Ruby on Rails 5.2.X
CVE-2019-5418 受影响版本如下:
Ruby on Rails < 6.0.0.beta3
Ruby on Rails < 5.2.2.1
Ruby on Rails < 5.1.6.2
Ruby on Rails < 5.0.7.2

【安全版本】
CVE-2019-5420 安全版本:
Ruby on Rails 6.0.0.beta3(推荐)
Ruby on Rails 5.2.2.1(推荐)
CVE-2019-5418 安全版本:
Ruby on Rails 6.0.0.beta3(推荐)
Ruby on Rails 5.2.2.1(推荐)
Ruby on Rails 5.1.6.2
Ruby on Rails 5.0.7.2

【修复建议】
1、推荐修复方案:
官方已发布补丁包修复上述漏洞,下载地址:https://groups.google.com/forum/#!topic/rubyonrails-security/IsQKvDqZdKw

2、如果您不方便实施补丁更新,可以采取如下临时缓解方案:
1)CVE-2019-5420 漏洞:
您可以通过在开发模式中指定密钥进行解决,在config/environments/development.rb文件中添加如下行:
config.secret_key_base = SecureRandom.hex(64)
2)CVE-2019-5418 漏洞:
2.1)禁止接受未注册的 mime type,在 actionpack/lib/action_dispatch/http/mime_negotiation.rb 中增加如下过滤:

2.2)强制修改使用了 render file: 调用的代码,指定要渲染的文件格式(formats),避免不必要的文件泄露:

class UserController < ApplicationController 
def index 
render file: "#{Rails.root}/some/file", formats: [:html] 
end 
end

【漏洞参考】
1)官方通告:https://groups.google.com/forum/#!topic/rubyonrails-security/IsQKvDqZdKw
2)社区参考:https://seclists.org/oss-sec/2019/q1/176