Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CoCo_Code_Op2
brakeman
提交
630ff40d
B
brakeman
项目概览
CoCo_Code_Op2
/
brakeman
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
brakeman
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
630ff40d
编写于
12月 11, 2013
作者:
J
Justin Collins
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add check for CVE-2013-6414 (header DoS)
上级
af316fd9
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
90 addition
and
0 deletion
+90
-0
lib/brakeman/checks/check_header_dos.rb
lib/brakeman/checks/check_header_dos.rb
+31
-0
lib/brakeman/warning_codes.rb
lib/brakeman/warning_codes.rb
+1
-0
test/apps/rails3.2/config/initializers/header_dos_protection.rb
...pps/rails3.2/config/initializers/header_dos_protection.rb
+19
-0
test/tests/only_files_option.rb
test/tests/only_files_option.rb
+13
-0
test/tests/rails3.rb
test/tests/rails3.rb
+12
-0
test/tests/rails31.rb
test/tests/rails31.rb
+12
-0
test/tests/rails32.rb
test/tests/rails32.rb
+2
-0
未找到文件。
lib/brakeman/checks/check_header_dos.rb
0 → 100644
浏览文件 @
630ff40d
require
'brakeman/checks/base_check'
class
Brakeman::CheckHeaderDoS
<
Brakeman
::
BaseCheck
Brakeman
::
Checks
.
add
self
@description
=
"Checks for header DoS (CVE-2013-6414)"
def
run_check
if
(
version_between?
"3.0.0"
,
"3.2.15"
or
version_between?
"4.0.0"
,
"4.0.1"
)
and
not
has_workaround?
message
=
"Rails
#{
tracker
.
config
[
:rails_version
]
}
has a denial of service vulnerability (CVE-2013-6414). Upgrade to Rails version "
if
version_between?
"3.0.0"
,
"3.2.15"
message
<<
"3.2.16"
else
message
<<
"4.0.2"
end
warn
:warning_type
=>
"Denial of Service"
,
:warning_code
=>
:CVE_2013_6414
,
:message
=>
message
,
:confidence
=>
CONFIDENCE
[
:med
],
:file
=>
gemfile_or_environment
,
:link_path
=>
"https://groups.google.com/d/msg/ruby-security-ann/A-ebV4WxzKg/KNPTbX8XAQUJ"
end
end
def
has_workaround?
tracker
.
check_initializers
(
:ActiveSupport
,
:on_load
).
any?
and
tracker
.
check_initializers
(
:"ActionView::LookupContext::DetailsKey"
,
:class_eval
).
any?
end
end
lib/brakeman/warning_codes.rb
浏览文件 @
630ff40d
...
...
@@ -64,6 +64,7 @@ module Brakeman::WarningCodes
:local_request_config
=>
61
,
:detailed_exceptions
=>
62
,
:CVE_2013_4491
=>
63
,
:CVE_2013_6414
=>
64
,
}
def
self
.
code
name
...
...
test/apps/rails3.2/config/initializers/header_dos_protection.rb
0 → 100644
浏览文件 @
630ff40d
# https://groups.google.com/d/msg/ruby-security-ann/A-ebV4WxzKg/KNPTbX8XAQUJ
ActiveSupport
.
on_load
(
:action_view
)
do
ActionView
::
LookupContext
::
DetailsKey
.
class_eval
do
class
<<
self
alias
:old_get
:get
def
get
(
details
)
if
details
[
:formats
]
details
=
details
.
dup
syms
=
Set
.
new
Mime
::
SET
.
symbols
details
[
:formats
]
=
details
[
:formats
].
select
{
|
v
|
syms
.
include?
v
}
end
old_get
details
end
end
end
end
test/tests/only_files_option.rb
浏览文件 @
630ff40d
...
...
@@ -62,4 +62,17 @@ class OnlyFilesOptionTests < Test::Unit::TestCase
:confidence
=>
1
,
:relative_path
=>
"Gemfile"
end
def
test_denial_of_service_CVE_2013_6414
assert_warning
:type
=>
:warning
,
:warning_code
=>
64
,
:fingerprint
=>
"a7b00f08e4a18c09388ad017876e3f57d18040ead2816a2091f3301b6f0e5a00"
,
:warning_type
=>
"Denial of Service"
,
:line
=>
nil
,
:message
=>
/^Rails\ 3\.2\.9\.rc2\ has\ a\ denial\ of\ service\ /
,
:confidence
=>
1
,
:relative_path
=>
"Gemfile"
,
:user_input
=>
nil
end
end
test/tests/rails3.rb
浏览文件 @
630ff40d
...
...
@@ -1081,12 +1081,24 @@ class Rails3Tests < Test::Unit::TestCase
def
test_denial_of_service_CVE_2013_1854
assert_no_warning
:type
=>
:warning
,
:warning_code
=>
55
,
:fingerprint
=>
"2746b8872d4f46676a8c490a7ac906d23f6b11c9d83b6371ff5895139ec7b43b"
,
:warning_type
=>
"Denial of Service"
,
:message
=>
/^Rails\ 3\.0\.3\ has\ a\ denial\ of\ service\ vul/
,
:confidence
=>
1
,
:file
=>
/Gemfile/
end
def
test_denial_of_service_CVE_2013_6414
assert_warning
:type
=>
:warning
,
:warning_code
=>
64
,
:fingerprint
=>
"a7b00f08e4a18c09388ad017876e3f57d18040ead2816a2091f3301b6f0e5a00"
,
:warning_type
=>
"Denial of Service"
,
:message
=>
/^Rails\ 3\.0\.3\ has\ a\ denial\ of\ service\ vuln/
,
:confidence
=>
1
,
:relative_path
=>
"Gemfile"
end
def
test_http_only_session_setting
assert_warning
:type
=>
:warning
,
:warning_type
=>
"Session Setting"
,
...
...
test/tests/rails31.rb
浏览文件 @
630ff40d
...
...
@@ -802,12 +802,24 @@ class Rails31Tests < Test::Unit::TestCase
def
test_denial_of_service_CVE_2013_1854
assert_warning
:type
=>
:warning
,
:warning_code
=>
55
,
:fingerprint
=>
"2746b8872d4f46676a8c490a7ac906d23f6b11c9d83b6371ff5895139ec7b43b"
,
:warning_type
=>
"Denial of Service"
,
:message
=>
/^Rails\ 3\.1\.0\ has\ a\ denial\ of\ service\ vul/
,
:confidence
=>
1
,
:file
=>
/Gemfile/
end
def
test_denial_of_service_CVE_2013_6414
assert_warning
:type
=>
:warning
,
:warning_code
=>
64
,
:fingerprint
=>
"a7b00f08e4a18c09388ad017876e3f57d18040ead2816a2091f3301b6f0e5a00"
,
:warning_type
=>
"Denial of Service"
,
:message
=>
/^Rails\ 3\.1\.0\ has\ a\ denial\ of\ service\ vuln/
,
:confidence
=>
1
,
:relative_path
=>
"Gemfile"
end
def
test_to_json_with_overwritten_config
assert_warning
:type
=>
:template
,
:warning_type
=>
"Cross Site Scripting"
,
...
...
test/tests/rails32.rb
浏览文件 @
630ff40d
...
...
@@ -82,6 +82,8 @@ class Rails32Tests < Test::Unit::TestCase
def
test_denial_of_service_CVE_2013_1854
assert_warning
:type
=>
:warning
,
:warning_code
=>
55
,
:fingerprint
=>
"2746b8872d4f46676a8c490a7ac906d23f6b11c9d83b6371ff5895139ec7b43b"
,
:warning_type
=>
"Denial of Service"
,
:message
=>
/^Rails\ 3\.2\.9\.rc2\ has\ a\ denial\ of\ service\ vul/
,
:confidence
=>
1
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录