brakeman-min 3.7.2 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES +15 -1
- data/FEATURES +1 -1
- data/lib/brakeman.rb +55 -17
- data/lib/brakeman/call_index.rb +2 -2
- data/lib/brakeman/checks/base_check.rb +4 -2
- data/lib/brakeman/checks/check_basic_auth.rb +3 -3
- data/lib/brakeman/checks/check_basic_auth_timing_attack.rb +1 -1
- data/lib/brakeman/checks/check_content_tag.rb +12 -12
- data/lib/brakeman/checks/check_create_with.rb +5 -5
- data/lib/brakeman/checks/check_cross_site_scripting.rb +8 -8
- data/lib/brakeman/checks/check_default_routes.rb +4 -4
- data/lib/brakeman/checks/check_deserialize.rb +2 -2
- data/lib/brakeman/checks/check_detailed_exceptions.rb +4 -4
- data/lib/brakeman/checks/check_digest_dos.rb +2 -2
- data/lib/brakeman/checks/check_dynamic_finders.rb +1 -1
- data/lib/brakeman/checks/check_escape_function.rb +2 -2
- data/lib/brakeman/checks/check_evaluation.rb +1 -1
- data/lib/brakeman/checks/check_execute.rb +5 -5
- data/lib/brakeman/checks/check_file_access.rb +4 -4
- data/lib/brakeman/checks/check_file_disclosure.rb +2 -2
- data/lib/brakeman/checks/check_filter_skipping.rb +2 -2
- data/lib/brakeman/checks/check_forgery_setting.rb +2 -2
- data/lib/brakeman/checks/check_header_dos.rb +1 -1
- data/lib/brakeman/checks/check_i18n_xss.rb +2 -2
- data/lib/brakeman/checks/check_jruby_xml.rb +2 -4
- data/lib/brakeman/checks/check_json_encoding.rb +4 -4
- data/lib/brakeman/checks/check_json_parsing.rb +6 -6
- data/lib/brakeman/checks/check_link_to.rb +5 -5
- data/lib/brakeman/checks/check_link_to_href.rb +37 -31
- data/lib/brakeman/checks/check_mail_to.rb +2 -2
- data/lib/brakeman/checks/check_mass_assignment.rb +6 -6
- data/lib/brakeman/checks/check_mime_type_dos.rb +1 -1
- data/lib/brakeman/checks/check_model_attr_accessible.rb +5 -5
- data/lib/brakeman/checks/check_model_attributes.rb +4 -4
- data/lib/brakeman/checks/check_model_serialize.rb +3 -3
- data/lib/brakeman/checks/check_nested_attributes.rb +2 -2
- data/lib/brakeman/checks/check_nested_attributes_bypass.rb +1 -1
- data/lib/brakeman/checks/check_number_to_currency.rb +5 -5
- data/lib/brakeman/checks/check_quote_table_name.rb +2 -2
- data/lib/brakeman/checks/check_redirect.rb +2 -2
- data/lib/brakeman/checks/check_regex_dos.rb +3 -3
- data/lib/brakeman/checks/check_render.rb +4 -4
- data/lib/brakeman/checks/check_render_dos.rb +1 -1
- data/lib/brakeman/checks/check_render_inline.rb +5 -5
- data/lib/brakeman/checks/check_response_splitting.rb +1 -1
- data/lib/brakeman/checks/check_route_dos.rb +1 -1
- data/lib/brakeman/checks/check_safe_buffer_manipulation.rb +2 -2
- data/lib/brakeman/checks/check_sanitize_methods.rb +7 -7
- data/lib/brakeman/checks/check_secrets.rb +1 -1
- data/lib/brakeman/checks/check_select_tag.rb +2 -2
- data/lib/brakeman/checks/check_select_vulnerability.rb +3 -3
- data/lib/brakeman/checks/check_send.rb +1 -1
- data/lib/brakeman/checks/check_session_manipulation.rb +2 -2
- data/lib/brakeman/checks/check_session_settings.rb +3 -3
- data/lib/brakeman/checks/check_simple_format.rb +4 -4
- data/lib/brakeman/checks/check_single_quotes.rb +3 -3
- data/lib/brakeman/checks/check_skip_before_filter.rb +3 -3
- data/lib/brakeman/checks/check_sql.rb +9 -9
- data/lib/brakeman/checks/check_sql_cves.rb +2 -2
- data/lib/brakeman/checks/check_ssl_verify.rb +1 -1
- data/lib/brakeman/checks/check_strip_tags.rb +7 -7
- data/lib/brakeman/checks/check_symbol_dos.rb +2 -2
- data/lib/brakeman/checks/check_symbol_dos_cve.rb +1 -1
- data/lib/brakeman/checks/check_translate_bug.rb +3 -3
- data/lib/brakeman/checks/check_unsafe_reflection.rb +2 -2
- data/lib/brakeman/checks/check_unscoped_find.rb +1 -1
- data/lib/brakeman/checks/check_validation_regex.rb +1 -1
- data/lib/brakeman/checks/check_weak_hash.rb +6 -6
- data/lib/brakeman/checks/check_without_protection.rb +2 -2
- data/lib/brakeman/checks/check_xml_dos.rb +1 -1
- data/lib/brakeman/checks/check_yaml_parsing.rb +2 -2
- data/lib/brakeman/commandline.rb +2 -2
- data/lib/brakeman/options.rb +9 -5
- data/lib/brakeman/processors/alias_processor.rb +3 -1
- data/lib/brakeman/processors/lib/rails2_route_processor.rb +8 -8
- data/lib/brakeman/processors/lib/render_helper.rb +3 -3
- data/lib/brakeman/report.rb +9 -6
- data/lib/brakeman/report/report_base.rb +2 -1
- data/lib/brakeman/report/report_text.rb +4 -6
- data/lib/brakeman/rescanner.rb +8 -8
- data/lib/brakeman/tracker.rb +3 -3
- data/lib/brakeman/tracker/collection.rb +1 -1
- data/lib/brakeman/util.rb +5 -1
- data/lib/brakeman/version.rb +1 -1
- data/lib/brakeman/warning.rb +49 -21
- metadata +2 -2
|
@@ -80,17 +80,17 @@ class Brakeman::CheckMassAssignment < Brakeman::BaseCheck
|
|
|
80
80
|
return
|
|
81
81
|
elsif not node_type? first_arg, :hash
|
|
82
82
|
if attr_protected
|
|
83
|
-
confidence =
|
|
83
|
+
confidence = :medium
|
|
84
84
|
else
|
|
85
|
-
confidence =
|
|
85
|
+
confidence = :high
|
|
86
86
|
end
|
|
87
87
|
else
|
|
88
|
-
|
|
88
|
+
return
|
|
89
89
|
end
|
|
90
90
|
elsif node_type? call.first_arg, :lit, :str
|
|
91
91
|
return
|
|
92
92
|
else
|
|
93
|
-
confidence =
|
|
93
|
+
confidence = :weak
|
|
94
94
|
input = nil
|
|
95
95
|
end
|
|
96
96
|
|
|
@@ -182,9 +182,9 @@ class Brakeman::CheckMassAssignment < Brakeman::BaseCheck
|
|
|
182
182
|
return unless original? result
|
|
183
183
|
|
|
184
184
|
confidence = if subsequent_mass_assignment? result
|
|
185
|
-
|
|
185
|
+
:high
|
|
186
186
|
else
|
|
187
|
-
|
|
187
|
+
:medium
|
|
188
188
|
end
|
|
189
189
|
|
|
190
190
|
warn :result => result,
|
|
@@ -24,7 +24,7 @@ class Brakeman::CheckMimeTypeDoS < Brakeman::BaseCheck
|
|
|
24
24
|
warn :warning_type => "Denial of Service",
|
|
25
25
|
:warning_code => :CVE_2016_0751,
|
|
26
26
|
:message => message,
|
|
27
|
-
:confidence =>
|
|
27
|
+
:confidence => :medium,
|
|
28
28
|
:gem_info => gemfile_or_environment,
|
|
29
29
|
:link_path => "https://groups.google.com/d/msg/rubyonrails-security/9oLY_FCzvoc/w9oI9XxbFQAJ"
|
|
30
30
|
end
|
|
@@ -11,11 +11,11 @@ class Brakeman::CheckModelAttrAccessible < Brakeman::BaseCheck
|
|
|
11
11
|
@description = "Reports models which have dangerous attributes defined under the attr_accessible whitelist."
|
|
12
12
|
|
|
13
13
|
SUSP_ATTRS = [
|
|
14
|
-
[:admin,
|
|
15
|
-
[:role,
|
|
16
|
-
[:banned,
|
|
17
|
-
[:account_id,
|
|
18
|
-
[/\S*_id(s?)\z/,
|
|
14
|
+
[:admin, :high], # Very dangerous unless some Rails authorization used
|
|
15
|
+
[:role, :medium],
|
|
16
|
+
[:banned, :medium],
|
|
17
|
+
[:account_id, :high],
|
|
18
|
+
[/\S*_id(s?)\z/, :weak] # All other foreign keys have weak/low confidence
|
|
19
19
|
]
|
|
20
20
|
|
|
21
21
|
def run_check
|
|
@@ -31,7 +31,7 @@ class Brakeman::CheckModelAttributes < Brakeman::BaseCheck
|
|
|
31
31
|
:warning_type => "Attribute Restriction",
|
|
32
32
|
:warning_code => :no_attr_accessible,
|
|
33
33
|
:message => "Mass assignment is not restricted using attr_accessible",
|
|
34
|
-
:confidence =>
|
|
34
|
+
:confidence => :high
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
unless protected_names.empty?
|
|
@@ -60,7 +60,7 @@ class Brakeman::CheckModelAttributes < Brakeman::BaseCheck
|
|
|
60
60
|
:warning_type => "Attribute Restriction",
|
|
61
61
|
:warning_code => :no_attr_accessible,
|
|
62
62
|
:message => "Mass assignment is not restricted using attr_accessible",
|
|
63
|
-
:confidence =>
|
|
63
|
+
:confidence => :high
|
|
64
64
|
elsif not tracker.options[:ignore_attr_protected]
|
|
65
65
|
message, confidence, link = check_for_attr_protected_bypass
|
|
66
66
|
|
|
@@ -106,11 +106,11 @@ class Brakeman::CheckModelAttributes < Brakeman::BaseCheck
|
|
|
106
106
|
|
|
107
107
|
if upgrade_version
|
|
108
108
|
message = "attr_protected is bypassable in #{rails_version}, use attr_accessible or upgrade to #{upgrade_version}"
|
|
109
|
-
confidence =
|
|
109
|
+
confidence = :high
|
|
110
110
|
link = "https://groups.google.com/d/topic/rubyonrails-security/AFBKNY7VSH8/discussion"
|
|
111
111
|
else
|
|
112
112
|
message = "attr_accessible is recommended over attr_protected"
|
|
113
|
-
confidence =
|
|
113
|
+
confidence = :medium
|
|
114
114
|
link = nil
|
|
115
115
|
end
|
|
116
116
|
|
|
@@ -17,7 +17,7 @@ class Brakeman::CheckModelSerialize < Brakeman::BaseCheck
|
|
|
17
17
|
|
|
18
18
|
return unless @upgrade_version
|
|
19
19
|
|
|
20
|
-
tracker.models.each do |
|
|
20
|
+
tracker.models.each do |_name, model|
|
|
21
21
|
check_for_serialize model
|
|
22
22
|
end
|
|
23
23
|
end
|
|
@@ -49,9 +49,9 @@ class Brakeman::CheckModelSerialize < Brakeman::BaseCheck
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
if attrs.empty?
|
|
52
|
-
confidence =
|
|
52
|
+
confidence = :medium
|
|
53
53
|
else
|
|
54
|
-
confidence =
|
|
54
|
+
confidence = :high
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
warn :model => model.name,
|
|
@@ -22,14 +22,14 @@ class Brakeman::CheckNestedAttributes < Brakeman::BaseCheck
|
|
|
22
22
|
warn :warning_type => "Nested Attributes",
|
|
23
23
|
:warning_code => :CVE_2010_3933,
|
|
24
24
|
:message => message,
|
|
25
|
-
:confidence =>
|
|
25
|
+
:confidence => :high,
|
|
26
26
|
:gem_info => gemfile_or_environment,
|
|
27
27
|
:link_path => "https://groups.google.com/d/topic/rubyonrails-security/-fkT0yja_gw/discussion"
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def uses_nested_attributes?
|
|
32
|
-
active_record_models.each do |
|
|
32
|
+
active_record_models.each do |_name, model|
|
|
33
33
|
return true if model.options[:accepts_nested_attributes_for]
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -38,7 +38,7 @@ class Brakeman::CheckNestedAttributesBypass < Brakeman::BaseCheck
|
|
|
38
38
|
:message => message,
|
|
39
39
|
:file => model.file,
|
|
40
40
|
:line => args.line,
|
|
41
|
-
:confidence =>
|
|
41
|
+
:confidence => :medium,
|
|
42
42
|
:link_path => "https://groups.google.com/d/msg/rubyonrails-security/cawsWcQ6c8g/tegZtYdbFQAJ"
|
|
43
43
|
end
|
|
44
44
|
|
|
@@ -31,10 +31,10 @@ class Brakeman::CheckNumberToCurrency < Brakeman::BaseCheck
|
|
|
31
31
|
message << "4.0.3"
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
-
warn :warning_type => "Cross
|
|
34
|
+
warn :warning_type => "Cross-Site Scripting",
|
|
35
35
|
:warning_code => :CVE_2014_0081,
|
|
36
36
|
:message => message,
|
|
37
|
-
:confidence =>
|
|
37
|
+
:confidence => :medium,
|
|
38
38
|
:gem_info => gemfile_or_environment,
|
|
39
39
|
:link_path => "https://groups.google.com/d/msg/ruby-security-ann/9WiRn2nhfq0/2K2KRB4LwCMJ"
|
|
40
40
|
end
|
|
@@ -46,7 +46,7 @@ class Brakeman::CheckNumberToCurrency < Brakeman::BaseCheck
|
|
|
46
46
|
next unless arg
|
|
47
47
|
|
|
48
48
|
if not check_helper_option(result, arg) and hash? arg
|
|
49
|
-
hash_iterate(arg) do |
|
|
49
|
+
hash_iterate(arg) do |_key, value|
|
|
50
50
|
break if check_helper_option(result, value)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
@@ -64,10 +64,10 @@ class Brakeman::CheckNumberToCurrency < Brakeman::BaseCheck
|
|
|
64
64
|
|
|
65
65
|
def warn_on_number_helper result, match
|
|
66
66
|
warn :result => result,
|
|
67
|
-
:warning_type => "Cross
|
|
67
|
+
:warning_type => "Cross-Site Scripting",
|
|
68
68
|
:warning_code => :CVE_2014_0081_call,
|
|
69
69
|
:message => "Format options in #{result[:call].method} are not safe in Rails #{rails_version}",
|
|
70
|
-
:confidence =>
|
|
70
|
+
:confidence => :high,
|
|
71
71
|
:link_path => "https://groups.google.com/d/msg/ruby-security-ann/9WiRn2nhfq0/2K2KRB4LwCMJ",
|
|
72
72
|
:user_input => match
|
|
73
73
|
end
|
|
@@ -12,9 +12,9 @@ class Brakeman::CheckQuoteTableName < Brakeman::BaseCheck
|
|
|
12
12
|
version_between?('3.0.0', '3.0.9'))
|
|
13
13
|
|
|
14
14
|
if uses_quote_table_name?
|
|
15
|
-
confidence =
|
|
15
|
+
confidence = :high
|
|
16
16
|
else
|
|
17
|
-
confidence =
|
|
17
|
+
confidence = :medium
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
if rails_version =~ /^3/
|
|
@@ -41,9 +41,9 @@ class Brakeman::CheckRedirect < Brakeman::BaseCheck
|
|
|
41
41
|
res = include_user_input?(call)
|
|
42
42
|
|
|
43
43
|
if res.type == :immediate
|
|
44
|
-
confidence =
|
|
44
|
+
confidence = :high
|
|
45
45
|
else
|
|
46
|
-
confidence =
|
|
46
|
+
confidence = :weak
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
warn :result => result,
|
|
@@ -35,12 +35,12 @@ class Brakeman::CheckRegexDoS < Brakeman::BaseCheck
|
|
|
35
35
|
next unless sexp? component
|
|
36
36
|
|
|
37
37
|
if match = has_immediate_user_input?(component)
|
|
38
|
-
confidence =
|
|
38
|
+
confidence = :high
|
|
39
39
|
elsif match = has_immediate_model?(component)
|
|
40
40
|
match = Match.new(:model, match)
|
|
41
|
-
confidence =
|
|
41
|
+
confidence = :medium
|
|
42
42
|
elsif match = include_user_input?(component)
|
|
43
|
-
confidence =
|
|
43
|
+
confidence = :weak
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
if match
|
|
@@ -36,12 +36,12 @@ class Brakeman::CheckRender < Brakeman::BaseCheck
|
|
|
36
36
|
|
|
37
37
|
if input = has_immediate_user_input?(view)
|
|
38
38
|
if string_interp? view
|
|
39
|
-
confidence =
|
|
39
|
+
confidence = :medium
|
|
40
40
|
else
|
|
41
|
-
confidence =
|
|
41
|
+
confidence = :high
|
|
42
42
|
end
|
|
43
43
|
elsif input = include_user_input?(view)
|
|
44
|
-
confidence =
|
|
44
|
+
confidence = :weak
|
|
45
45
|
else
|
|
46
46
|
return
|
|
47
47
|
end
|
|
@@ -77,7 +77,7 @@ class Brakeman::CheckRender < Brakeman::BaseCheck
|
|
|
77
77
|
:warning_code => :dynamic_render_path_rce,
|
|
78
78
|
:message => "Passing query parameters to render() is vulnerable in Rails #{rails_version} (CVE-2016-0752)",
|
|
79
79
|
:user_input => view,
|
|
80
|
-
:confidence =>
|
|
80
|
+
:confidence => :high
|
|
81
81
|
end
|
|
82
82
|
end
|
|
83
83
|
end
|
|
@@ -30,7 +30,7 @@ class Brakeman::CheckRenderDoS < Brakeman::BaseCheck
|
|
|
30
30
|
warn :warning_type => "Denial of Service",
|
|
31
31
|
:warning_code => :CVE_2014_0082,
|
|
32
32
|
:message => message,
|
|
33
|
-
:confidence =>
|
|
33
|
+
:confidence => :high,
|
|
34
34
|
:link_path => "https://groups.google.com/d/msg/rubyonrails-security/LMxO_3_eCuc/ozGBEhKaJbIJ",
|
|
35
35
|
:gem_info => gemfile_or_environment
|
|
36
36
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
class Brakeman::CheckRenderInline < Brakeman::CheckCrossSiteScripting
|
|
2
2
|
Brakeman::Checks.add self
|
|
3
3
|
|
|
4
|
-
@description = "Checks for cross
|
|
4
|
+
@description = "Checks for cross-site scripting in render calls"
|
|
5
5
|
|
|
6
6
|
def run_check
|
|
7
7
|
setup
|
|
@@ -24,18 +24,18 @@ class Brakeman::CheckRenderInline < Brakeman::CheckCrossSiteScripting
|
|
|
24
24
|
|
|
25
25
|
if input = has_immediate_user_input?(render_value)
|
|
26
26
|
warn :result => result,
|
|
27
|
-
:warning_type => "Cross
|
|
27
|
+
:warning_type => "Cross-Site Scripting",
|
|
28
28
|
:warning_code => :cross_site_scripting_inline,
|
|
29
29
|
:message => "Unescaped #{friendly_type_of input} rendered inline",
|
|
30
30
|
:user_input => input,
|
|
31
|
-
:confidence =>
|
|
31
|
+
:confidence => :high
|
|
32
32
|
elsif input = has_immediate_model?(render_value)
|
|
33
33
|
warn :result => result,
|
|
34
|
-
:warning_type => "Cross
|
|
34
|
+
:warning_type => "Cross-Site Scripting",
|
|
35
35
|
:warning_code => :cross_site_scripting_inline,
|
|
36
36
|
:message => "Unescaped model attribute rendered inline",
|
|
37
37
|
:user_input => input,
|
|
38
|
-
:confidence =>
|
|
38
|
+
:confidence => :medium
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
41
|
end
|
|
@@ -13,7 +13,7 @@ class Brakeman::CheckResponseSplitting < Brakeman::BaseCheck
|
|
|
13
13
|
warn :warning_type => "Response Splitting",
|
|
14
14
|
:warning_code => :CVE_2011_3186,
|
|
15
15
|
:message => "Versions before 2.3.14 have a vulnerability content type handling allowing injection of headers: CVE-2011-3186",
|
|
16
|
-
:confidence =>
|
|
16
|
+
:confidence => :medium,
|
|
17
17
|
:gem_info => gemfile_or_environment,
|
|
18
18
|
:link_path => "https://groups.google.com/d/topic/rubyonrails-security/b_yTveAph2g/discussion"
|
|
19
19
|
end
|
|
@@ -21,7 +21,7 @@ class Brakeman::CheckRouteDoS < Brakeman::BaseCheck
|
|
|
21
21
|
warn :warning_type => "Denial of Service",
|
|
22
22
|
:warning_code => :CVE_2015_7581,
|
|
23
23
|
:message => message,
|
|
24
|
-
:confidence =>
|
|
24
|
+
:confidence => :medium,
|
|
25
25
|
:gem_info => gemfile_or_environment,
|
|
26
26
|
:link_path => "https://groups.google.com/d/msg/rubyonrails-security/dthJ5wL69JE/YzPnFelbFQAJ"
|
|
27
27
|
end
|
|
@@ -22,10 +22,10 @@ class Brakeman::CheckSafeBufferManipulation < Brakeman::BaseCheck
|
|
|
22
22
|
|
|
23
23
|
message = "Rails #{rails_version} has a vulnerabilty in SafeBuffer. Upgrade to #{suggested_version} or apply patches."
|
|
24
24
|
|
|
25
|
-
warn :warning_type => "Cross
|
|
25
|
+
warn :warning_type => "Cross-Site Scripting",
|
|
26
26
|
:warning_code => :safe_buffer_vuln,
|
|
27
27
|
:message => message,
|
|
28
|
-
:confidence =>
|
|
28
|
+
:confidence => :medium,
|
|
29
29
|
:gem_info => gemfile_or_environment
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -46,16 +46,16 @@ class Brakeman::CheckSanitizeMethods < Brakeman::BaseCheck
|
|
|
46
46
|
message = "Rails #{rails_version} has a vulnerability in #{method}: upgrade to #{@fix_version} or patch"
|
|
47
47
|
|
|
48
48
|
if include_user_input? result[:call]
|
|
49
|
-
confidence =
|
|
49
|
+
confidence = :high
|
|
50
50
|
else
|
|
51
|
-
confidence =
|
|
51
|
+
confidence = :medium
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
warn :result => result,
|
|
55
|
-
:warning_type => "Cross
|
|
55
|
+
:warning_type => "Cross-Site Scripting",
|
|
56
56
|
:warning_code => code,
|
|
57
57
|
:message => message,
|
|
58
|
-
:confidence =>
|
|
58
|
+
:confidence => :high,
|
|
59
59
|
:link_path => link
|
|
60
60
|
end
|
|
61
61
|
end
|
|
@@ -64,12 +64,12 @@ class Brakeman::CheckSanitizeMethods < Brakeman::BaseCheck
|
|
|
64
64
|
message = "rails-html-sanitizer #{tracker.config.gem_version(:'rails-html-sanitizer')} is vulnerable (#{cve}). Upgrade to 1.0.3"
|
|
65
65
|
|
|
66
66
|
if tracker.find_call(:target => false, :method => :sanitize).any?
|
|
67
|
-
confidence =
|
|
67
|
+
confidence = :high
|
|
68
68
|
else
|
|
69
|
-
confidence =
|
|
69
|
+
confidence = :medium
|
|
70
70
|
end
|
|
71
71
|
|
|
72
|
-
warn :warning_type => "Cross
|
|
72
|
+
warn :warning_type => "Cross-Site Scripting",
|
|
73
73
|
:warning_code => cve.tr('-', '_').to_sym,
|
|
74
74
|
:message => message,
|
|
75
75
|
:gem_info => gemfile_or_environment,
|
|
@@ -25,7 +25,7 @@ class Brakeman::CheckSecrets < Brakeman::BaseCheck
|
|
|
25
25
|
warn :warning_code => :secret_in_source,
|
|
26
26
|
:warning_type => "Authentication",
|
|
27
27
|
:message => "Hardcoded value for #{name} in source code",
|
|
28
|
-
:confidence =>
|
|
28
|
+
:confidence => :medium,
|
|
29
29
|
:file => constant.file,
|
|
30
30
|
:line => constant.line
|
|
31
31
|
end
|
|
@@ -46,11 +46,11 @@ class Brakeman::CheckSelectTag < Brakeman::BaseCheck
|
|
|
46
46
|
return
|
|
47
47
|
elsif sexp? prompt_option and input = include_user_input?(prompt_option)
|
|
48
48
|
|
|
49
|
-
warn :warning_type => "Cross
|
|
49
|
+
warn :warning_type => "Cross-Site Scripting",
|
|
50
50
|
:warning_code => :CVE_2012_3463,
|
|
51
51
|
:result => result,
|
|
52
52
|
:message => @message,
|
|
53
|
-
:confidence =>
|
|
53
|
+
:confidence => :high,
|
|
54
54
|
:user_input => input,
|
|
55
55
|
:link_path => "https://groups.google.com/d/topic/rubyonrails-security/fV3QUToSMSw/discussion"
|
|
56
56
|
end
|
|
@@ -44,13 +44,13 @@ class Brakeman::CheckSelectVulnerability < Brakeman::BaseCheck
|
|
|
44
44
|
add_result result
|
|
45
45
|
|
|
46
46
|
if string_interp? third_arg
|
|
47
|
-
confidence =
|
|
47
|
+
confidence = :medium
|
|
48
48
|
else
|
|
49
|
-
confidence =
|
|
49
|
+
confidence = :weak
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
warn :template => result[:location][:template],
|
|
53
|
-
:warning_type => "Cross
|
|
53
|
+
:warning_type => "Cross-Site Scripting",
|
|
54
54
|
:warning_code => :select_options_vuln,
|
|
55
55
|
:result => result,
|
|
56
56
|
:message => @message,
|
|
@@ -18,9 +18,9 @@ class Brakeman::CheckSessionManipulation < Brakeman::BaseCheck
|
|
|
18
18
|
|
|
19
19
|
if input = has_immediate_user_input?(index)
|
|
20
20
|
if params? index
|
|
21
|
-
confidence =
|
|
21
|
+
confidence = :high
|
|
22
22
|
else
|
|
23
|
-
confidence =
|
|
23
|
+
confidence = :medium
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
warn :result => result,
|
|
@@ -137,7 +137,7 @@ class Brakeman::CheckSessionSettings < Brakeman::BaseCheck
|
|
|
137
137
|
warn :warning_type => "Session Setting",
|
|
138
138
|
:warning_code => :http_cookies,
|
|
139
139
|
:message => "Session cookies should be set to HTTP only",
|
|
140
|
-
:confidence =>
|
|
140
|
+
:confidence => :high,
|
|
141
141
|
:line => line,
|
|
142
142
|
:file => file
|
|
143
143
|
|
|
@@ -147,7 +147,7 @@ class Brakeman::CheckSessionSettings < Brakeman::BaseCheck
|
|
|
147
147
|
warn :warning_type => "Session Setting",
|
|
148
148
|
:warning_code => :session_secret,
|
|
149
149
|
:message => "Session secret should not be included in version control",
|
|
150
|
-
:confidence =>
|
|
150
|
+
:confidence => :high,
|
|
151
151
|
:line => line,
|
|
152
152
|
:file => file
|
|
153
153
|
end
|
|
@@ -156,7 +156,7 @@ class Brakeman::CheckSessionSettings < Brakeman::BaseCheck
|
|
|
156
156
|
warn :warning_type => "Session Setting",
|
|
157
157
|
:warning_code => :secure_cookies,
|
|
158
158
|
:message => "Session cookie should be set to secure only",
|
|
159
|
-
:confidence =>
|
|
159
|
+
:confidence => :high,
|
|
160
160
|
:line => line,
|
|
161
161
|
:file => file
|
|
162
162
|
end
|