brakeman-lib 8.0.5 → 8.0.6
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 +7 -0
- data/lib/brakeman/checks/check_eol_rails.rb +2 -1
- data/lib/brakeman/checks/check_eol_ruby.rb +1 -0
- data/lib/brakeman/checks/check_execute.rb +18 -23
- data/lib/brakeman/version.rb +1 -1
- data/lib/brakeman.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 93cfb6ec4cc35376d35e8fe361e6b893bfe39858136d53a29196dd5c5869658d
|
|
4
|
+
data.tar.gz: eb788145060b1e41cf0f18d56395b13681ba0daf72f1948dc8ab0f73e3449b50
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9698bfe45b5988178cbe7e134dd0134c00618ec786c0cfcea2a01cce139f1a0e8317dd2b7d1e54ae24b8fe0b4c23687fa02742333ff4c2226cf382a2806597ab
|
|
7
|
+
data.tar.gz: 9e1ad4ea0ee656909be88cdcb167f0e9eda87c4af2b8a43c58f27e4d8c9c4c1922885958a90a8cb1a71c0049dbfeb2369e3f0751c68bc259d5b78578bdf6725d
|
data/CHANGES.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# 8.0.6 - 2026-08-13
|
|
2
|
+
|
|
3
|
+
* Fix EOL date for Rails 8.0 (yeaseul-kim)
|
|
4
|
+
* Add EOL dates for Rails 8.1 and Ruby 4.0
|
|
5
|
+
* Fix command injection false positives (Jacob Evelyn)
|
|
6
|
+
* Fix unused variable warning (viralpraxis)
|
|
7
|
+
|
|
1
8
|
# 8.0.5 - 2026-06-12
|
|
2
9
|
|
|
3
10
|
* Add `quote_schema_name` to safe quote method list (Zsolt Kozaroczy)
|
|
@@ -25,6 +25,7 @@ class Brakeman::CheckEOLRails < Brakeman::EOLCheck
|
|
|
25
25
|
['7.0.0', '7.0.99'] => Date.new(2025, 4, 1),
|
|
26
26
|
['7.1.0', '7.1.99'] => Date.new(2025, 10, 1),
|
|
27
27
|
['7.2.0', '7.2.99'] => Date.new(2026, 8, 9),
|
|
28
|
-
['8.0.0', '8.0.99'] => Date.new(2026,
|
|
28
|
+
['8.0.0', '8.0.99'] => Date.new(2026, 11, 7),
|
|
29
|
+
['8.1.0', '8.1.99'] => Date.new(2027, 10, 10),
|
|
29
30
|
}
|
|
30
31
|
end
|
|
@@ -55,6 +55,13 @@ class Brakeman::CheckExecute < Brakeman::BaseCheck
|
|
|
55
55
|
first_arg = call.first_arg
|
|
56
56
|
failure = nil
|
|
57
57
|
|
|
58
|
+
# All spawn-family methods optionally accept an env hash as the first
|
|
59
|
+
# argument. Strip it so first_arg always points to the command name.
|
|
60
|
+
if hash?(first_arg)
|
|
61
|
+
args.delete_at(1)
|
|
62
|
+
first_arg = args[1]
|
|
63
|
+
end
|
|
64
|
+
|
|
58
65
|
case call.method
|
|
59
66
|
when :popen
|
|
60
67
|
# Normally, if we're in a `popen` call, we only are worried about shell
|
|
@@ -99,14 +106,17 @@ class Brakeman::CheckExecute < Brakeman::BaseCheck
|
|
|
99
106
|
|
|
100
107
|
break if failure
|
|
101
108
|
end
|
|
102
|
-
when :system, :exec
|
|
103
|
-
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
#
|
|
107
|
-
#
|
|
108
|
-
#
|
|
109
|
-
|
|
109
|
+
when :system, :exec, :spawn, :capture2, :capture2e, :capture3,
|
|
110
|
+
:popen2, :popen2e, :popen3
|
|
111
|
+
# Comma-separated arguments are passed directly to execve without a
|
|
112
|
+
# shell, so only the first argument (the command name) needs checking.
|
|
113
|
+
# Exception: `bash -c <script>` — the script is the injection vector.
|
|
114
|
+
#
|
|
115
|
+
# All of these methods accept an optional trailing options hash
|
|
116
|
+
# (e.g. stdin_data:, chdir:); strip it before checking.
|
|
117
|
+
args.pop if hash?(args.last) && args.length > 2
|
|
118
|
+
|
|
119
|
+
if dash_c_shell_command?(first_arg, args[2])
|
|
110
120
|
failure = include_user_input?(args[3]) ||
|
|
111
121
|
dangerous_interp?(args[3]) ||
|
|
112
122
|
dangerous_string_building?(args[3])
|
|
@@ -115,21 +125,6 @@ class Brakeman::CheckExecute < Brakeman::BaseCheck
|
|
|
115
125
|
dangerous_interp?(first_arg) ||
|
|
116
126
|
dangerous_string_building?(first_arg)
|
|
117
127
|
end
|
|
118
|
-
when :capture2, :capture2e, :capture3
|
|
119
|
-
# Open3 capture methods can take a :stdin_data argument which is used as the
|
|
120
|
-
# the input to the called command so it is not succeptable to command injection.
|
|
121
|
-
# As such if the last argument is a hash (and therefore execution options) it
|
|
122
|
-
# should be ignored
|
|
123
|
-
|
|
124
|
-
args.pop if hash?(args.last) && args.length > 2
|
|
125
|
-
|
|
126
|
-
args.each_sexp do |arg|
|
|
127
|
-
failure = include_user_input?(arg) ||
|
|
128
|
-
dangerous_interp?(arg) ||
|
|
129
|
-
dangerous_string_building?(arg)
|
|
130
|
-
|
|
131
|
-
break if failure
|
|
132
|
-
end
|
|
133
128
|
else
|
|
134
129
|
failure = include_user_input?(args) ||
|
|
135
130
|
dangerous_interp?(args) ||
|
data/lib/brakeman/version.rb
CHANGED
data/lib/brakeman.rb
CHANGED
|
@@ -427,7 +427,7 @@ module Brakeman
|
|
|
427
427
|
release_date = latest.date.to_date
|
|
428
428
|
latest_version = latest.version.to_s
|
|
429
429
|
|
|
430
|
-
if (Date.today -
|
|
430
|
+
if (Date.today - release_date) >= days_old
|
|
431
431
|
if current != latest_version
|
|
432
432
|
return "Brakeman #{current} is not the latest version #{latest_version}"
|
|
433
433
|
else
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: brakeman-lib
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 8.0.
|
|
4
|
+
version: 8.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Collins
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-08-12 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: minitest
|
|
@@ -481,6 +482,7 @@ metadata:
|
|
|
481
482
|
mailing_list_uri: https://gitter.im/presidentbeef/brakeman
|
|
482
483
|
source_code_uri: https://github.com/presidentbeef/brakeman
|
|
483
484
|
wiki_uri: https://github.com/presidentbeef/brakeman/wiki
|
|
485
|
+
post_install_message:
|
|
484
486
|
rdoc_options: []
|
|
485
487
|
require_paths:
|
|
486
488
|
- lib
|
|
@@ -495,7 +497,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
495
497
|
- !ruby/object:Gem::Version
|
|
496
498
|
version: '0'
|
|
497
499
|
requirements: []
|
|
498
|
-
rubygems_version: 4.
|
|
500
|
+
rubygems_version: 3.4.19
|
|
501
|
+
signing_key:
|
|
499
502
|
specification_version: 4
|
|
500
503
|
summary: Security vulnerability scanner for Ruby on Rails.
|
|
501
504
|
test_files: []
|