brakeman-lib 4.8.0 → 4.8.1
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.md +8 -1
- data/README.md +7 -1
- data/lib/brakeman/checks/check_mass_assignment.rb +15 -0
- data/lib/brakeman/checks/check_sql.rb +1 -1
- data/lib/brakeman/processors/lib/find_all_calls.rb +1 -1
- data/lib/brakeman/processors/lib/render_helper.rb +3 -1
- data/lib/brakeman/version.rb +1 -1
- data/lib/brakeman/warning_codes.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2e421e421971f6309de15b50d5305a37acf839e4023cd5b976cfb644f62b635
|
4
|
+
data.tar.gz: cb219b5f4cac1dd286e88b6048dd675adb062be8d273d960364f830ed3fa9493
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7f76e5da87ef345f47de2a8c489e94f07ba5892a5ab796d9cc5ad147036d599d273d1b339e126ed4f6288efd1b6bfa3a77201787afbcbf83b0279acb6a57459
|
7
|
+
data.tar.gz: 1544f86037df9fd49e3674c7bd39b4eec1f1e41378078a6077647506f7ba257db4aaa48191df5b8c11c736bc44ac054fc0e96e6b67d21e155977a2f8b7ce44f0
|
data/CHANGES.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
#
|
1
|
+
# 4.8.1 - 2020-04-06
|
2
|
+
|
3
|
+
* Check SQL query strings using `String#strip` or `String.squish`
|
4
|
+
* Handle non-symbol keys in locals hash for render()
|
5
|
+
* Warn about global(!) mass assignment
|
6
|
+
* Index calls in render arguments
|
7
|
+
|
8
|
+
# 4.8.0 - 2020-02-18
|
2
9
|
|
3
10
|
* Add JUnit-XML report format (Naoki Kimura)
|
4
11
|
* Sort ignore files by fingerprint and line (Ngan Pham)
|
data/README.md
CHANGED
@@ -74,12 +74,16 @@ To specify an output file for the results:
|
|
74
74
|
|
75
75
|
brakeman -o output_file
|
76
76
|
|
77
|
-
The output format is determined by the file extension or by using the `-f` option. Current options are: `text`, `html`, `tabs`, `json`, `markdown`, `csv`, and `codeclimate`.
|
77
|
+
The output format is determined by the file extension or by using the `-f` option. Current options are: `text`, `html`, `tabs`, `json`, `junit`, `markdown`, `csv`, and `codeclimate`.
|
78
78
|
|
79
79
|
Multiple output files can be specified:
|
80
80
|
|
81
81
|
brakeman -o output.html -o output.json
|
82
82
|
|
83
|
+
To output to both a file and to the console, with color:
|
84
|
+
|
85
|
+
brakeman --color -o /dev/stdout -o output.json
|
86
|
+
|
83
87
|
To suppress informational warnings and just output the report:
|
84
88
|
|
85
89
|
brakeman -q
|
@@ -167,6 +171,8 @@ There is a [plugin available](http://brakemanscanner.org/docs/jenkins/) for Jenk
|
|
167
171
|
|
168
172
|
For even more continuous testing, try the [Guard plugin](https://github.com/guard/guard-brakeman).
|
169
173
|
|
174
|
+
There are a couple [Github Actions](https://github.com/marketplace?type=actions&query=brakeman) available.
|
175
|
+
|
170
176
|
# Building
|
171
177
|
|
172
178
|
git clone git://github.com/presidentbeef/brakeman.git
|
@@ -17,6 +17,7 @@ class Brakeman::CheckMassAssignment < Brakeman::BaseCheck
|
|
17
17
|
def run_check
|
18
18
|
check_mass_assignment
|
19
19
|
check_permit!
|
20
|
+
check_permit_all_parameters
|
20
21
|
end
|
21
22
|
|
22
23
|
def find_mass_assign_calls
|
@@ -193,4 +194,18 @@ class Brakeman::CheckMassAssignment < Brakeman::BaseCheck
|
|
193
194
|
:message => "Parameters should be whitelisted for mass assignment",
|
194
195
|
:confidence => confidence
|
195
196
|
end
|
197
|
+
|
198
|
+
def check_permit_all_parameters
|
199
|
+
tracker.find_call(target: :"ActionController::Parameters", method: :permit_all_parameters=).each do |result|
|
200
|
+
call = result[:call]
|
201
|
+
|
202
|
+
if true? call.first_arg
|
203
|
+
warn :result => result,
|
204
|
+
:warning_type => "Mass Assignment",
|
205
|
+
:warning_code => :mass_assign_permit_all,
|
206
|
+
:message => "Parameters should be whitelisted for mass assignment",
|
207
|
+
:confidence => :high
|
208
|
+
end
|
209
|
+
end
|
210
|
+
end
|
196
211
|
end
|
@@ -393,7 +393,7 @@ class Brakeman::CheckSQL < Brakeman::BaseCheck
|
|
393
393
|
nil
|
394
394
|
end
|
395
395
|
|
396
|
-
TO_STRING_METHODS = [:to_s, :strip_heredoc]
|
396
|
+
TO_STRING_METHODS = [:to_s, :squish, :strip, :strip_heredoc]
|
397
397
|
|
398
398
|
#Returns value if interpolated value is not something safe
|
399
399
|
def unsafe_string_interp? exp
|
@@ -89,7 +89,7 @@ class Brakeman::FindAllCalls < Brakeman::BasicProcessor
|
|
89
89
|
#Calls to render() are converted to s(:render, ...) but we would
|
90
90
|
#like them in the call cache still for speed
|
91
91
|
def process_render exp
|
92
|
-
|
92
|
+
process_all exp
|
93
93
|
|
94
94
|
add_simple_call :render, exp
|
95
95
|
|
@@ -98,7 +98,9 @@ module Brakeman::RenderHelper
|
|
98
98
|
|
99
99
|
if hash? options[:locals]
|
100
100
|
hash_iterate options[:locals] do |key, value|
|
101
|
-
|
101
|
+
if symbol? key
|
102
|
+
template_env[Sexp.new(:call, nil, key.value)] = value
|
103
|
+
end
|
102
104
|
end
|
103
105
|
end
|
104
106
|
|
data/lib/brakeman/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brakeman-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.8.
|
4
|
+
version: 4.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Collins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -406,7 +406,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
406
406
|
- !ruby/object:Gem::Version
|
407
407
|
version: '0'
|
408
408
|
requirements: []
|
409
|
-
rubygems_version: 3.
|
409
|
+
rubygems_version: 3.0.8
|
410
410
|
signing_key:
|
411
411
|
specification_version: 4
|
412
412
|
summary: Security vulnerability scanner for Ruby on Rails.
|