【问题标题】:Denial of Service using mime type caching使用 mime 类型缓存的拒绝服务
【发布时间】:2016-02-17 09:03:59
【问题描述】:
我正在使用brakeman(3.5.1) 来扫描我的rails 代码(4.2.1)。
事情似乎很好。但它给出了如下问题:
通过 mime 类型缓存拒绝服务。请升级到 Rails 4.2.5。
现在我了解了什么是拒绝服务,并且 mime 类型位于 http 请求的接受标头中。但是 mime 类型缓存如何导致拒绝服务。
谁能解释一下这是怎么引起的。
谢谢
【问题讨论】:
标签:
ruby-on-rails-4
rubygems
brakeman
【解决方案1】:
完整的消息是:Rails 4.2.1 is vulnerable to denial of service via mime type caching (CVE-2016-0751). Upgrade to Rails version 4.2.5。
如果您搜索 CVE-2016-0751,或使用 HTML 报告并单击“拒绝服务”,或使用 JSON 输出并点击提供的链接,您会发现 Rails security advisory for CVE-2016-0751 指出:
Action Pack 中可能存在对象泄漏和拒绝服务攻击
可能存在可能导致拒绝服务的对象泄漏
Action Pack 中的漏洞。此漏洞已分配给
CVE 标识符 CVE-2016-0751。
受影响的版本:全部。
不受影响:无。
固定版本:5.0.0.beta1.1、4.2.5.1、4.1.14.1、3.2.22.1
影响
精心设计的接受标头可能会导致 MIME 类型的全局缓存无限增长,从而可能导致拒绝
Action Pack 中的服务攻击。
所有运行受影响版本的用户都应该升级或使用一个
立即解决方法。
当收到 HTTP 请求时,它可以使用 Accept 标头来表示它期望接收的特定 mime 类型。这些缓存在 Rails 中。攻击者可以发送许多不同的 mime 类型(它们不必是真实的)并导致缓存变大并使用所有可用的 RAM,从而使服务器崩溃。这被归类为拒绝服务攻击。
换句话说,它是 Rails 核心部分的安全漏洞。要解决这个问题,请升级。