Ruby on Rails 任意文件读取漏洞(CVE-2019-5418)

来源:scanv2019.03.16

一、漏洞概述

1、简介

Ruby on Rails[1]是一套使用 Ruby 开发的,非常有生产力、维护性高、容易布署的Web 开发框架,是全世界 Web 应用程式开发的首选框架之一。

2019/03/14,Aaron Patterson 在邮件中曝光该 web 框架存在任意文件读取漏洞[2],如果开发者在使用 render 渲染文件内容却没有指定接受格式,就会导致服务器上的

任意文件被渲染,造成文件内容泄漏。

2019/03/16,Seebug 平台收录了这个漏洞[3],知道创宇 404 实验室漏洞情报团队开始漏洞应急,复现了这个漏洞。

2、影响版本

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

Ruby on Rails < 4.2.11.1

二、漏洞复现

1、复现环境

Ruby on Rails0.7

2、环境搭建

使用网上公开的漏洞环境进行测试。

3、复现过程及结果

修改 HTTP 请求中 Accept 字段,即可实现任意文件读取。

三、防护方案

1、漏洞出现后 Ruby on Rails 官方第一时间修复,升级到对应的最新版本即可。

2、代码修复,在 actionpack/lib/action_dispatch/http/mime_negotiation.rb 中增加如下过滤,禁止接受未注册的 mime type[5]:

3、规范代码开发,在渲染文件时强制指定 formats:

4、使用第三方防火墙进行防护(如创宇盾[https://www.yunaq.com/cyd/])

5、技术业务咨询

    知道创宇技术业务咨询热线 :

    400-060-9587(政府,国有企业)、028-68360638(互联网企业)

 

 

热门文章

关注知道创宇云安全

获取安全动态