brakeman 4.7.0 → 4.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 423fdaa947da827893c870cfa05f423bf39eef53fb1e64c09219ae3de15db137
4
- data.tar.gz: 9df6cbba5de7da32e9b83755bf41dbe58b3bca3ec30fcb0bff435406a975d00e
3
+ metadata.gz: cb1a6279fa089c035c1e284d078ba0af21b8a19de58e489dcdc7c3a167d52e43
4
+ data.tar.gz: 4d163ff4a319363126e9626f8d0d841b1b55abf48fca01f1b5e0581bbda8f69f
5
5
  SHA512:
6
- metadata.gz: 83a323503d5a222fe30dfe4792728dfe1689a1dcc2a95c2457b044810afa5bc9257482fc8ce406ca1cf7e9f171cd9dd80a51657baf28b784bcfe2cbc521ee8c8
7
- data.tar.gz: 138b6fc7cecc0746e5873944035f1ca2286ab7e485445796f48566d6692a6905e4c6f85ae3c10e3efa83fc00de72878958573943b5a62b60b5beb7c363dd3980
6
+ metadata.gz: 7decb5b6745e654b6e2d7b06503fedad0e9a1c1b89d40ee380e37c23092420e34425357091f47a623508b1cf7e91a114a786f25d5441efe1cd7db80d7d15cc72
7
+ data.tar.gz: 81651d8ba5958201234b84576a691e5281b3f3af3cbb66500fb847e1873406c8956f8746c062de965b95c76e5c3c9f6810b81ebe73abbfc454cafbd2e93b9c31
data/CHANGES.md CHANGED
@@ -1,4 +1,14 @@
1
- # 4.7.0
1
+ # 4.7.1 - 2019-10-29
2
+
3
+ * Check string length against limit before joining
4
+ * Fix errors from frozen `Symbol#to_s` in Ruby 2.7
5
+ * Fix flaky rails4 test (Adam Kiczula)
6
+ * Added release dates to each version in CHANGES (TheSpartan1980)
7
+ * Catch reverse tabnabbing with `:_blank` symbol (Jacob Evelyn)
8
+ * Convert `s(:lambda)` to `s(:call)` in `Sexp#block_call`
9
+ * Sort text report by file and line (Jacob Evelyn)
10
+
11
+ # 4.7.0 - 2019-10-16
2
12
 
3
13
  * Refactor `Brakeman::Differ#second_pass` (Benoit Côté-Jodoin)
4
14
  * Ignore interpolation in `%W[]`
@@ -9,11 +19,11 @@
9
19
  * Catch shell injection from `-c` shell commands (Jacob Evelyn)
10
20
  * Correctly handle non-symbols in `CheckCookieSerialization` (Phil Turnbull)
11
21
 
12
- # 4.6.1
22
+ # 4.6.1 - 2019-07-24
13
23
 
14
24
  * Fix Reverse Tabnabbing warning message (Steffen Schildknecht / Jörg Schiller)
15
25
 
16
- # 4.6.0
26
+ # 4.6.0 - 2019-07-23
17
27
 
18
28
  * Skip calls to `dup`
19
29
  * Add reverse tabnabbing check (Linos Giannopoulos)
@@ -29,7 +39,7 @@
29
39
  * Add special warning code for custom checks
30
40
  * Add call matching by regular expression
31
41
 
32
- # 4.5.1
42
+ # 4.5.1 - 2019-05-11
33
43
 
34
44
  * Add `Brakeman::FilePath` to represent file paths
35
45
  * Handle trailing comma in block args
@@ -44,7 +54,7 @@
44
54
  * Add initial Rails 6 support
45
55
  * Add SQL injection checks for `destroy_by`/`delete_by`
46
56
 
47
- # 4.5.0
57
+ # 4.5.0 - 2019-03-16
48
58
 
49
59
  * Update `ruby_parser`, use `ruby_parser-legacy`
50
60
  * More thoroughly handle `Shellwords` escaping
@@ -61,7 +71,7 @@
61
71
  * Better handling of splat/kwsplat arguments
62
72
  * Improve "user input" reported for SQL injection
63
73
 
64
- # 4.4.0
74
+ # 4.4.0 - 2019-01-17
65
75
 
66
76
  * Set default encoding to UTF-8
67
77
  * Update to Slim 4.0.1 (Jake Peterson)
@@ -84,7 +94,7 @@
84
94
  * Complete overhaul of warning message construction
85
95
  * Deadcode and typo fixes found via Coverity
86
96
 
87
- # 4.3.1
97
+ # 4.3.1 - 2018-06-07
88
98
 
89
99
  * Ignore `Object#freeze`, use the target instead
90
100
  * Ignore `foreign_key` calls in SQL
@@ -97,7 +107,7 @@
97
107
  * Improve handling of conditionals in shell commands (Jacob Evelyn)
98
108
  * Fix error when setting line number in implicit renders
99
109
 
100
- # 4.3.0
110
+ # 4.3.0 - 2018-05-11
101
111
 
102
112
  * Check exec-type calls even if they are targets
103
113
  * Convert `Array#join` to string interpolation
@@ -113,14 +123,14 @@
113
123
  * `--color` can be used to force color output
114
124
  * Fix reported line numbers for CVE-2018-3741 and CVE-2018-8048
115
125
 
116
- # 4.2.1
126
+ # 4.2.1 - 2018-03-24
117
127
 
118
128
  * Add warning for CVE-2018-3741
119
129
  * Add warning for CVE-2018-8048
120
130
  * Scan `app/jobs/` directory
121
131
  * Handle `template_exists?` in controllers
122
132
 
123
- # 4.2.0
133
+ # 4.2.0 - 2018-02-22
124
134
 
125
135
  * Avoid warning about symbol DoS on `Model#attributes`
126
136
  * Avoid warning about open redirects with model methods ending with `_path`
@@ -133,12 +143,12 @@
133
143
  * Exclude template folders in `lib/` (kru0096)
134
144
  * Handle ERb use of `String#<<` method for Ruby 2.5 (Pocke)
135
145
 
136
- # 4.1.1
146
+ # 4.1.1 - 2017-12-19
137
147
 
138
148
  * Remove check for use of `permit` with `*_id` keys
139
149
  * Avoid duplicate warnings about permitted attributes
140
150
 
141
- # 4.1.0
151
+ # 4.1.0 - 2017-12-14
142
152
 
143
153
  * Process models as root sexp instead of each sexp
144
154
  * Avoid CSRF warning in Rails 5.2 default config
@@ -161,12 +171,12 @@
161
171
  * Refactor Code Climate engine options parsing (Noah Davis)
162
172
  * Fix upgrade version for CVE-2016-6316
163
173
 
164
- # 4.0.1
174
+ # 4.0.1 - 2017-09-25
165
175
 
166
176
  * Disable pager when `CI` environment variable is set
167
177
  * Fix output when pager fails
168
178
 
169
- # 4.0.0
179
+ # 4.0.0 - 2017-09-25
170
180
 
171
181
  * Add simple pager for reports output to terminal
172
182
  * Rename "Cross Site Scripting" to "Cross-Site Scripting" (Paul Tetreau)
@@ -180,11 +190,11 @@
180
190
  * --exit-on-error and --exit-on-warn are now the default
181
191
  * Fix --exit-on-error and --exit-on-warn in config files
182
192
 
183
- # 3.7.2
193
+ # 3.7.2 - 2017-08-16
184
194
 
185
195
  * Fix --ensure-latest (David Guyon)
186
196
 
187
- # 3.7.1
197
+ # 3.7.1 - 2017-08-16
188
198
 
189
199
  * Handle simple guard with return at end of branch
190
200
  * Modularize bin/brakeman
@@ -192,7 +202,7 @@
192
202
  * Add more collection methods for iteration detection
193
203
  * Update ruby2ruby and ruby_parser
194
204
 
195
- # 3.7.0
205
+ # 3.7.0 - 2017-06-30
196
206
 
197
207
  * Improve support for rails4/rails5 options in config file
198
208
  * Track more information about constant assignments
@@ -201,7 +211,7 @@
201
211
  * Fix false positive for redirect_to in Rails 4 (Mário Areias)
202
212
  * Avoid interpolating hashes/arrays on failed access
203
213
 
204
- # 3.6.2
214
+ # 3.6.2 - 2017-05-19
205
215
 
206
216
  * Handle safe call operator in checks
207
217
  * Better handling of `if` expressions in HAML rendering
@@ -216,11 +226,11 @@
216
226
  * Handle empty `if` expressions when finding return values
217
227
  * Fix finding return value from empty `if`
218
228
 
219
- # 3.6.1
229
+ # 3.6.1 - 2017-03-24
220
230
 
221
231
  * Fix error when using `--compare` (Sean Gransee)
222
232
 
223
- # 3.6.0
233
+ # 3.6.0 - 2017-03-23
224
234
 
225
235
  * Avoid recursive Concerns
226
236
  * Branch inside of `case` expressions
@@ -231,7 +241,7 @@
231
241
  * Only report CVE-2015-3227 when exact version is known
232
242
  * Check targetless SQL calls outside of known models
233
243
 
234
- # 3.5.0
244
+ # 3.5.0 - 2017-02-01
235
245
 
236
246
  * Allow `-t None`
237
247
  * Fail on invalid checks specified by `-x` or `-t`
@@ -246,7 +256,7 @@
246
256
  * Handle `included` block in concerns
247
257
  * Process concerns before controllers
248
258
 
249
- # 3.4.1
259
+ # 3.4.1 - 2016-11-02
250
260
 
251
261
  * Show action help at start of interactive ignore
252
262
  * Check CSRF setting in direct subclasses of `ActionController::Base` (Jason Yeo)
@@ -256,7 +266,7 @@
256
266
  * Avoid warning about `where_values_hash` in SQLi
257
267
  * Fix ignoring link interpolation not at beginning of string
258
268
 
259
- # 3.4.0
269
+ # 3.4.0 - 2016-09-08
260
270
 
261
271
  * Add new `plain` report format
262
272
  * Add option to prune ignore file with `-I`
@@ -265,18 +275,18 @@
265
275
  * Support creating reports in non-existent paths
266
276
  * Add `--no-exit-warn`
267
277
 
268
- # 3.3.5
278
+ # 3.3.5 - 2016-08-12
269
279
 
270
280
  * Fix bug in reports when using --debug option
271
281
 
272
- # 3.3.4
282
+ # 3.3.4 - 2016-08-12
273
283
 
274
284
  * Add generic warning for CVE-2016-6316
275
285
  * Warn about dangerous use of `content_tag` with CVE-2016-6316
276
286
  * Add warning for CVE-2016-6317
277
287
  * Use Minitest
278
288
 
279
- # 3.3.3
289
+ # 3.3.3 - 2016-07-21
280
290
 
281
291
  * Show path when no Rails app found (Neil Matatall)
282
292
  * Index calls in view helpers
@@ -289,11 +299,11 @@
289
299
  * Sexp#value returns nil when there is no value
290
300
  * Improve return value estimation
291
301
 
292
- # 3.3.2
302
+ # 3.3.2 - 2016-06-10
293
303
 
294
304
  * Fix serious performance regression with global constant tracking
295
305
 
296
- # 3.3.1
306
+ # 3.3.1 - 2016-06-03
297
307
 
298
308
  * Delay loading vendored gems and modifying load path
299
309
  * Avoid warning about SQL injection with `quoted_primary_key`
@@ -304,7 +314,7 @@
304
314
  * Add `--force-scan` option (Neil Matatall)
305
315
  * Improved line number accuracy in ERB templates (Patrick Toomey)
306
316
 
307
- # 3.3.0
317
+ # 3.3.0 - 2016-05-05
308
318
 
309
319
  * Skip processing obviously false if branches (more broadly)
310
320
  * Skip if branches with `Rails.env.test?`
@@ -322,11 +332,11 @@
322
332
  * [Code Climate engine] Remove nil entries from include_paths (Gordon Diggs)
323
333
  * [Code Climate engine] Report end lines for issues (Gordon Diggs)
324
334
 
325
- # 3.2.1
335
+ # 3.2.1 - 2016-02-25
326
336
 
327
337
  * Remove `multi_json` dependency from `bin/brakeman`
328
338
 
329
- # 3.2.0
339
+ # 3.2.0 - 2016-02-25
330
340
 
331
341
  * Skip Symbol DoS check on Rails 5
332
342
  * Only update ignore config file on changes
@@ -340,7 +350,7 @@
340
350
  * Avoid render warnings about params[:action]/params[:controller]
341
351
  * Index calls in class bodies but outside methods
342
352
 
343
- # 3.1.5
353
+ # 3.1.5 - 2016-01-28
344
354
 
345
355
  * Fix CodeClimate construction of --only-files (Will Fleming)
346
356
  * Add check for denial of service via routes (CVE-2015-7581)
@@ -359,7 +369,7 @@
359
369
  * Handle module names with self methods
360
370
  * Add session manipulation documentation
361
371
 
362
- # 3.1.4
372
+ # 3.1.4 - 2015-12-22
363
373
 
364
374
  * Emit brakeman's native fingerprints for Code Climate engine (Noah Davis)
365
375
  * Ignore secrets.yml if in .gitignore
@@ -367,7 +377,7 @@
367
377
  * Increase test coverage for option parsing (Zander Mackie)
368
378
  * Work around safe_yaml error
369
379
 
370
- # 3.1.3
380
+ # 3.1.3 - 2015-12-03
371
381
 
372
382
  * Check for session secret in secrets.yml
373
383
  * Respect `exit_on_warn` in config file
@@ -381,7 +391,7 @@
381
391
  * Depend on safe_yaml 1.0 or later
382
392
  * Test coverage improvements for Brakema module (Bethany Rentz)
383
393
 
384
- # 3.1.2
394
+ # 3.1.2 - 2015-10-28
385
395
 
386
396
  * Treat `current_user` like a model
387
397
  * Set user input value for inline renders
@@ -399,7 +409,7 @@
399
409
  * Sortable tables in HTML report (David Lanner)
400
410
  * Search for config file relative to application root
401
411
 
402
- # 3.1.1
412
+ # 3.1.1 - 2015-09-23
403
413
 
404
414
  * Add optional check for use of MD5 and SHA1
405
415
  * Avoid warning when linking to decorated models
@@ -413,7 +423,7 @@
413
423
  * Support newer terminal-table releases
414
424
  * Allow searching call index methods by regex (Alex Ianus)
415
425
 
416
- # 3.1.0
426
+ # 3.1.0 - 2015-08-31
417
427
 
418
428
  * Add support for gems.rb/gems.locked
419
429
  * Update render path information in JSON reports
@@ -432,18 +442,18 @@
432
442
  * Expand safe methods to match methods with targets
433
443
  * Avoid duplicate eval() warnings
434
444
 
435
- # 3.0.5
445
+ # 3.0.5 - 2015-06-20
436
446
 
437
447
  * Fix check for CVE-2015-3227
438
448
 
439
- # 3.0.4
449
+ # 3.0.4 - 2015-06-18
440
450
 
441
451
  * Add check for CVE-2015-3226 (XSS via JSON keys)
442
452
  * Add check for CVE-2015-3227 (XML DoS)
443
453
  * Treat `<%==` as unescaped output
444
454
  * Update `ruby_parser` dependency to 3.7.0
445
455
 
446
- # 3.0.3
456
+ # 3.0.3 - 2015-04-20
447
457
 
448
458
  * Ignore more Arel methods in SQL
449
459
  * Warn about protect_from_forgery without exceptions (Neil Matatall)
@@ -454,7 +464,7 @@
454
464
  * Do not ignore targets of `to_s` in SQL
455
465
  * Add Rake task to exit with error code on warnings (masarakki)
456
466
 
457
- # 3.0.2
467
+ # 3.0.2 - 2015-03-09
458
468
 
459
469
  * Alias process methods called in class scope on models
460
470
  * Treat primary_key, table_name_prefix, table_name_suffix as safe in SQL
@@ -470,7 +480,7 @@
470
480
  * Fix CSV output when there are no warnings
471
481
  * Handle processing of explicitly shadowed block arguments
472
482
 
473
- # 3.0.1
483
+ # 3.0.1 - 2015-01-23
474
484
 
475
485
  * Avoid protect_from_forgery warning unless ApplicationController inherits from ActionController::Base
476
486
  * Properly format command interpolation (again)
@@ -479,7 +489,7 @@
479
489
  * Add `--add-libs-path` for additional libraries (Patrick Toomey)
480
490
  * Properly process libraries (Patrick Toomey)
481
491
 
482
- # 3.0.0
492
+ # 3.0.0 - 2015-01-03
483
493
 
484
494
  * Add check for CVE-2014-7829
485
495
  * Add check for cross-site scripting via inline renders
@@ -498,7 +508,7 @@
498
508
  * CVEs report correct line and file name (Gemfile/Gemfile.lock) (Rob Fletcher)
499
509
  * Change `--separate-models` to be the default
500
510
 
501
- # 2.6.3
511
+ # 2.6.3 - 2014-10-14
502
512
 
503
513
  * Whitelist `exists` arel method from SQL injection check
504
514
  * Avoid warning about Symbol DoS on safe parameters as method targets
@@ -507,7 +517,7 @@
507
517
  * Add framework for optional checks
508
518
  * Fix stack overflow for cycles in class ancestors (Jeff Rafter)
509
519
 
510
- # 2.6.2
520
+ # 2.6.2 - 2014-08-18
511
521
 
512
522
  * Add check for CVE-2014-3415
513
523
  * Avoid warning about symbolizing safe parameters
@@ -521,13 +531,13 @@
521
531
  * Fix block statement endings in Erubis
522
532
  * Fix undefined variable in controller processing error (Jason Barnabe)
523
533
 
524
- # 2.6.1
534
+ # 2.6.1 - 2014-07-02
525
535
 
526
536
  * Add check for CVE-2014-3482 and CVE-2014-3483
527
537
  * Add support for keyword arguments in blocks
528
538
  * Remove unused warning codes (Bill Fischer)
529
539
 
530
- # 2.6.0
540
+ # 2.6.0 - 2014-06-06
531
541
 
532
542
  * Fix detection of `:host` setting in redirects with chained calls
533
543
  * Add check for CVE-2014-0130
@@ -541,7 +551,7 @@
541
551
  * Ignore more model methods in redirects
542
552
  * Fix CheckRender with nested render calls
543
553
 
544
- # 2.5.0
554
+ # 2.5.0 - 2014-04-30
545
555
 
546
556
  * Add support for RailsLTS 2.3.18.7 and 2.3.18.8
547
557
  * Add support for Rails 4 `before_actions` and friends
@@ -556,11 +566,11 @@
556
566
  * Handle more non-literals in routes
557
567
  * Add check for regex denial of service (Ben Toews)
558
568
 
559
- # 2.4.3
569
+ # 2.4.3 - 2014-03-23
560
570
 
561
571
  No changes. 2.4.2 gem release was unsigned, 2.4.3 is signed.
562
572
 
563
- # 2.4.2
573
+ # 2.4.2 - 2014-03-21
564
574
 
565
575
  * Remove `rescue Exception`
566
576
  * Fix duplicate warnings about sanitize CVE
@@ -569,13 +579,13 @@
569
579
  * Skip identically rendered templates
570
580
  * Fix HAML template processing
571
581
 
572
- # 2.4.1
582
+ # 2.4.1 - 2014-02-19
573
583
 
574
584
  * Add check for CVE-2014-0082
575
585
  * Add check for CVE-2014-0081, replaces CVE-2013-6415
576
586
  * Add check for CVE-2014-0080
577
587
 
578
- # 2.4.0
588
+ # 2.4.0 - 2014-02-05
579
589
 
580
590
  * Detect Rails LTS versions
581
591
  * Reduce false positives for SQL injection in string building
@@ -590,12 +600,12 @@
590
600
  * No longer raise exceptions if a class name cannot be determined
591
601
  * Fingerprint attribute warnings individually (Case Taintor)
592
602
 
593
- # 2.3.1
603
+ # 2.3.1 - 2013-12-13
594
604
 
595
605
  * Fix check for CVE-2013-4491 (i18n XSS) to detect workaround
596
606
  * Fix link for CVE-2013-6415 (number_to_currency)
597
607
 
598
- # 2.3.0
608
+ # 2.3.0 - 2013-12-12
599
609
 
600
610
  * Add check for Parameters#permit!
601
611
  * Add check for CVE-2013-4491 (i18n XSS)
@@ -609,7 +619,7 @@
609
619
  * Whitelist `Model#create` for redirects
610
620
  * Fix scoping issues with instance variables and blocks
611
621
 
612
- # 2.2.0
622
+ # 2.2.0 - 2013-10-28
613
623
 
614
624
  * Reduce command injection false positives
615
625
  * Use Rails version from Gemfile if it is available
@@ -618,14 +628,14 @@
618
628
  * Support scanning Rails engines (Geoffrey Hichborn)
619
629
  * Add check for detailed exceptions in production
620
630
 
621
- # 2.1.2
631
+ # 2.1.2 - 2013-09-18
622
632
 
623
633
  * Do not attempt to load custom Haml filters
624
634
  * Do not warn about `to_json` XSS in Rails 4
625
635
  * Add --table-width option to set width of text reports (ssendev)
626
636
  * Remove fuzzy matching on dangerous attr_accessible values
627
637
 
628
- # 2.1.1
638
+ # 2.1.1 - 2013-08-21
629
639
 
630
640
  * New warning code for dangerous attributes in attr_accessible
631
641
  * Do not warn on attr_accessible using roles
@@ -636,7 +646,7 @@
636
646
  * Fix infinite loop when run as rake task (Matthew Shanley)
637
647
  * Respect ignored warnings in tabs format reports
638
648
 
639
- # 2.1.0
649
+ # 2.1.0 - 2013-07-17
640
650
 
641
651
  * Support non-native line endings in Gemfile.lock (Paul Deardorff)
642
652
  * Support for ignoring warnings
@@ -656,7 +666,7 @@
656
666
  * Fix output format detection to be more strict again
657
667
  * Allow empty Brakeman configuration file
658
668
 
659
- # 2.0.0
669
+ # 2.0.0 - 2013-05-20
660
670
 
661
671
  * Add `--only-files` option to specify files/paths to scan (Ian Ehlert)
662
672
  * Add Marshal/CSV deserialization check
@@ -686,7 +696,7 @@
686
696
  * Use exceptions instead of abort in brakeman lib
687
697
  * Update to Ruby2Ruby 2.0.5
688
698
 
689
- # 1.9.5
699
+ # 1.9.5 - 2013-04-05
690
700
 
691
701
  * Add check for unsafe symbol creation
692
702
  * Do not warn on mass assignment with `slice`/`only`
@@ -701,7 +711,7 @@
701
711
  * More fixes for assignments inside branches
702
712
  * Pin to ruby2ruby version 2.0.3
703
713
 
704
- # 1.9.4
714
+ # 1.9.4 - 2013-03-19
705
715
 
706
716
  * Add check for CVE-2013-1854
707
717
  * Add check for CVE-2013-1855
@@ -713,7 +723,7 @@
713
723
  * Slightly faster cloning of Sexps
714
724
  * Detect another way to add `strong_parameters`
715
725
 
716
- # 1.9.3
726
+ # 1.9.3 - 2013-03-01
717
727
 
718
728
  * Add render path to JSON report
719
729
  * Add warning fingerprints
@@ -728,7 +738,7 @@
728
738
  * Expand HAML dependency to include 4.0
729
739
  * Scroll errors into view when expanding in HTML report
730
740
 
731
- # 1.9.2
741
+ # 1.9.2 - 2013-02-14
732
742
 
733
743
  * Add check for CVE-2013-0269
734
744
  * Add check for CVE-2013-0276
@@ -739,7 +749,7 @@
739
749
  * Check for more dangerous YAML methods
740
750
  * Support MultiJSON 1.2 for Rails 3.0 and 3.1
741
751
 
742
- # 1.9.1
752
+ # 1.9.1 - 2013-01-19
743
753
 
744
754
  * Update to RubyParser 3.1.1 (neersighted)
745
755
  * Remove ActiveSupport dependency (Neil Matatall)
@@ -751,7 +761,7 @@
751
761
  * Add check for CVE-2013-0156
752
762
  * Add check for unsafe `YAML.load`
753
763
 
754
- # 1.9.0
764
+ # 1.9.0 - 2012-12-25
755
765
 
756
766
  * Update to RubyParser 3
757
767
  * Ignore route information by default
@@ -771,7 +781,7 @@
771
781
  * Handle empty model files
772
782
  * Remove "find by regex" feature from `CallIndex`
773
783
 
774
- # 1.8.3
784
+ # 1.8.3 - 2012-11-13
775
785
 
776
786
  * Use `multi_json` gem for better harmony
777
787
  * Performance improvement for call indexing
@@ -787,7 +797,7 @@
787
797
  * Fix error in rescan of mixins with symbols in method name
788
798
  * Do not rescan non-Ruby files in config/
789
799
 
790
- # 1.8.2
800
+ # 1.8.2 - 2012-10-17
791
801
 
792
802
  * Fixed rescanning problems caused by 1.8.0 changes
793
803
  * Fix scope calls with single argument
@@ -796,7 +806,7 @@
796
806
  * Much improved test coverage
797
807
  * Add CHANGES to gemspec
798
808
 
799
- # 1.8.1
809
+ # 1.8.1 - 2012-09-24
800
810
 
801
811
  * Recover from errors in output formatting
802
812
  * Fix false positive in redirect_to (Neil Matatall)
@@ -808,7 +818,7 @@
808
818
  * Handle super calls with blocks
809
819
  * Respect `-q` flag for "Rails 3 detected" message
810
820
 
811
- # 1.8.0
821
+ # 1.8.0 - 2012-09-05
812
822
 
813
823
  * Support relative paths in reports (fsword)
814
824
  * Allow Brakeman to be run without tty (fsword)
@@ -824,7 +834,7 @@
824
834
  * Treat model attributes in `or` expressions as immediate values
825
835
  * Switch to method access for Sexp nodes
826
836
 
827
- # 1.7.1
837
+ # 1.7.1 - 2012-08-13
828
838
 
829
839
  * Add check for CVE-2012-3463
830
840
  * Add check for CVE-2012-3464
@@ -832,7 +842,7 @@
832
842
  * Add charset to HTML report (hooopo)
833
843
  * Report XSS in select() for Rails 2
834
844
 
835
- # 1.7.0
845
+ # 1.7.0 - 2012-07-31
836
846
 
837
847
  * Add check for CVE-2012-3424
838
848
  * Link report types to descriptions on website
@@ -847,7 +857,7 @@
847
857
  * Fix processing of negative array indexes
848
858
  * Add line breaks to truncated table rows
849
859
 
850
- # 1.6.2
860
+ # 1.6.2 - 2012-06-13
851
861
 
852
862
  * Add checks for CVE-2012-2660, CVE-2012-2661, CVE-2012-2694, CVE-2012-2695 (Dave Worth)
853
863
  * Avoid warning when redirecting to a model instance
@@ -859,7 +869,7 @@
859
869
  * Cache before_filter lookups
860
870
  * Turn off quiet mode by default for `--compare`
861
871
 
862
- # 1.6.1
872
+ # 1.6.1 - 2012-05-23
863
873
 
864
874
  * Major rewrite of CheckSQL
865
875
  * Fix rescanning of deleted templates
@@ -869,7 +879,7 @@
869
879
  * Fix highlighting of HTML escaped values in HTML report
870
880
  * Report line number of highlighted value, if available
871
881
 
872
- # 1.6.0
882
+ # 1.6.0 - 2012-04-20
873
883
 
874
884
  * Remove the Ruport dependency (Neil Matatall)
875
885
  * Add more informational JSON output (Neil Matatall)
@@ -881,7 +891,7 @@
881
891
  * Fix rescanning of deleted files
882
892
  * Properly check for rails_xss in Gemfile
883
893
 
884
- # 1.5.3
894
+ # 1.5.3 - 2012-04-10
885
895
 
886
896
  * Add check for user input in Object#send (Neil Matatall)
887
897
  * Handle render :layout in views
@@ -895,7 +905,7 @@
895
905
  * Improve handling of modules and nesting
896
906
  * Test for zero errors in test reports
897
907
 
898
- # 1.5.2
908
+ # 1.5.2 - 2012-03-22
899
909
 
900
910
  * Fix link_to checks for Rails 2.0 and 2.3
901
911
  * Fix rescanning of lib files (Neil Matatall)
@@ -906,7 +916,7 @@
906
916
  * Fix handling of views when using rails_xss
907
917
  * Revert to ruby_parser 2.3.1 for Ruby 1.8 parsing
908
918
 
909
- # 1.5.1
919
+ # 1.5.1- 2012-03-06
910
920
 
911
921
  * Fix detection of global mass assignment setting
912
922
  * Fix partial rendering in Rails 3
@@ -916,7 +926,7 @@
916
926
  * Add tracking of module and class to Brakeman::BaseProcessor
917
927
  * Report module when using Brakeman::FindCall
918
928
 
919
- # 1.5.0
929
+ # 1.5.0 - 2012-03-02
920
930
 
921
931
  * Add version check for SafeBuffer vulnerability
922
932
  * Add check for select vulnerability in Rails 3
@@ -927,7 +937,7 @@
927
937
  * Standardize methods to check for SQL injection
928
938
  * Fix Rails 2 route parsing issue with nested routes
929
939
 
930
- # 1.4.0
940
+ # 1.4.0 - 2012-02-24
931
941
 
932
942
  * Add check for user input in link_to href parameter
933
943
  * Match ERB processing to rails_xss plugin when plugin used
@@ -935,7 +945,7 @@
935
945
  * Warnings below minimum confidence are dropped completely
936
946
  * Brakeman.run always returns a Tracker
937
947
 
938
- # 1.3.0
948
+ # 1.3.0 - 2012-02-09
939
949
 
940
950
  * Add file paths to HTML report
941
951
  * Add caching of filters
@@ -948,7 +958,7 @@
948
958
  * Better variable substitution
949
959
  * Table output option for rescan reports
950
960
 
951
- # 1.2.2
961
+ # 1.2.2 - 2012-01-26
952
962
 
953
963
  * --no-progress works again
954
964
  * Make CheckLinkTo a separate check
@@ -956,7 +966,7 @@
956
966
  * Handle empty resource(s) blocks
957
967
  * Add RescanReport#existing_warnings
958
968
 
959
- ## 1.2.1
969
+ ## 1.2.1 - 2012-01-20
960
970
 
961
971
  * Remove link_to warning for Rails 3.x or when using rails_xss
962
972
  * Don't warn if first argument to link_to is escaped
@@ -968,7 +978,7 @@
968
978
  * Add Brakeman::RescanReport#to_s
969
979
  * Add Brakeman::Warning#to_s
970
980
 
971
- ## 1.2.0
981
+ ## 1.2.0 - 2012-01-14
972
982
 
973
983
  * Speed improvements for CheckExecute and CheckRender
974
984
  * Check named_scope() and scope() for SQL injection
@@ -977,7 +987,7 @@
977
987
  * Add --summary option to only output summary
978
988
  * Fix a problem with Rails 3 routes
979
989
 
980
- ## 1.1.0
990
+ ## 1.1.0 - 2011-12-22
981
991
 
982
992
  * Relax required versions for dependencies
983
993
  * Performance improvements for source processing
@@ -987,14 +997,14 @@
987
997
  * Compatibility with newer Haml versions
988
998
  * Fix some warnings
989
999
 
990
- ## 1.0.0
1000
+ ## 1.0.0 - 2011-12-08
991
1001
 
992
1002
  * Better handling of assignments inside ifs
993
1003
  * Check more expressions for SQL injection
994
1004
  * Use latest ruby_parser for better 1.9 syntax support
995
1005
  * Better behavior for Brakeman as a library
996
1006
 
997
- ## 1.0.0rc1
1007
+ ## 1.0.0rc1 - 2011-12-06
998
1008
 
999
1009
  * Brakeman can now be used as a library
1000
1010
  * Faster call search
@@ -1007,23 +1017,23 @@
1007
1017
  * Ignore mass assignment using all literal arguments
1008
1018
  * Keep expanded context in view with HTML output
1009
1019
 
1010
- ## 0.9.2
1020
+ ## 0.9.2 - 2011-11-22
1011
1021
 
1012
1022
  * Fix Rails 3 configuration parsing
1013
1023
  * Add t() helper to check for translate XSS bug
1014
1024
 
1015
- ## 0.9.1
1025
+ ## 0.9.1 - 2011-11-18
1016
1026
 
1017
1027
  * Add warning for translator helper XSS vulnerability
1018
1028
 
1019
- ## 0.9.0
1029
+ ## 0.9.0 - 2011-11-17
1020
1030
 
1021
1031
  * Process Rails 3 configuration files
1022
1032
  * Fix CSV output
1023
1033
  * Check for config.active_record.whitelist_attributes = true
1024
1034
  * Always produce a warning for without_protection => true
1025
1035
 
1026
- ## 0.8.4
1036
+ ## 0.8.4 - 2011-11-04
1027
1037
 
1028
1038
  * Option for separate attr_accessible warnings
1029
1039
  * Option to set CSS file for HTML output
@@ -1032,23 +1042,23 @@
1032
1042
  * Fix hash_insert()
1033
1043
  * Remove use of Queue from threaded checks
1034
1044
 
1035
- ## 0.8.3
1045
+ ## 0.8.3 - 2011-10-25
1036
1046
 
1037
1047
  * Respect -w flag in .tabs format (tw-ngreen)
1038
1048
  * Escape HTML output of error messages
1039
1049
  * Add --skip-libs option
1040
1050
 
1041
- ## 0.8.2
1051
+ ## 0.8.2 - 2011-10-01
1042
1052
 
1043
1053
  * Run checks in parallel threads by default
1044
1054
  * Fix compatibility with ruby_parser 2.3.1
1045
1055
 
1046
- ## 0.8.1
1056
+ ## 0.8.1 - 2011-09-28
1047
1057
 
1048
1058
  * Add option to assume all controller methods are actions
1049
1059
  * Recover from errors when parsing routes
1050
1060
 
1051
- ## 0.8.0
1061
+ ## 0.8.0 - 2011-09-15
1052
1062
 
1053
1063
  * Add check for mass assignment using without_protection
1054
1064
  * Add check for password in http_basic_authenticate_with
@@ -1059,30 +1069,30 @@
1059
1069
  * Add ruby_parser hack for Ruby 1.9 hash syntax
1060
1070
  * Add a few Rails 3.1 tests
1061
1071
 
1062
- ## 0.7.2
1072
+ ## 0.7.2 - 2011-08-27
1063
1073
 
1064
1074
  * Fix handling of params and cookies with nested access
1065
1075
  * Add CVEs for checks added in 0.7.0
1066
1076
 
1067
- ## 0.7.1
1077
+ ## 0.7.1 - 2011-08-18
1068
1078
 
1069
1079
  * Require BaseProcessor for GemProcessor
1070
1080
 
1071
- ## 0.7.0
1081
+ ## 0.7.0 - 2011-08-17
1072
1082
 
1073
1083
  * Allow local variable as a class name
1074
1084
  * Add checks for vulnerabilities fixed in Rails 2.3.14 and 3.0.10
1075
1085
  * Check for default routes in Rails 3 apps
1076
1086
  * Look in Gemfile or Gemfile.lock for Rails version
1077
1087
 
1078
- ## 0.6.1
1088
+ ## 0.6.1 - 2011-07-29
1079
1089
 
1080
1090
  * Fix XSS check for cookies as parameters in output
1081
1091
  * Don't bother calling super in CheckSessionSettings
1082
1092
  * Add escape_once as a safe method
1083
1093
  * Accept '\Z' or '\z' in model validations
1084
1094
 
1085
- ## 0.6.0
1095
+ ## 0.6.0 - 2011-07-20
1086
1096
 
1087
1097
  * Tests are in place and fully functional
1088
1098
  * Hide errors by default in HTML output
@@ -1095,17 +1105,17 @@
1095
1105
  * Fixes to escaped output scanning
1096
1106
  * Update CSRF CVE-2011-0447 message to be less assertive
1097
1107
 
1098
- ## 0.5.2
1108
+ ## 0.5.2 - 2011-06-29
1099
1109
 
1100
1110
  * Output report file name when finished
1101
1111
  * Add initial tests for Rails 2.x
1102
1112
  * Fix ERB line numbers when using Ruby 1.9
1103
1113
 
1104
- ## 0.5.1
1114
+ ## 0.5.1 - 2011-06-17
1105
1115
 
1106
1116
  * Fix issue with 'has_one' => in routes
1107
1117
 
1108
- ## 0.5.0
1118
+ ## 0.5.0 - 2011-06-08
1109
1119
 
1110
1120
  * Add support for routes like get 'x/y', :to => 'ctrlr#whatever'
1111
1121
  * Allow empty blocks in Rails 3 routes
@@ -1113,52 +1123,52 @@
1113
1123
  * Add line numbers to session setting warnings
1114
1124
  * Add --checks option to list checks
1115
1125
 
1116
- ## 0.4.1
1126
+ ## 0.4.1 - 2011-05-23
1117
1127
 
1118
1128
  * Fix reported line numbers when using new Erubis parser
1119
1129
  (Mostly affects Rails 3 apps)
1120
1130
 
1121
- ## 0.4.0
1131
+ ## 0.4.0 - 2011-05-19
1122
1132
 
1123
1133
  * Handle Rails XSS protection properly
1124
1134
  * More detection options for rails_xss
1125
1135
  * Add --escape-html option
1126
1136
 
1127
- ## 0.3.2
1137
+ ## 0.3.2 - 2011-05-12
1128
1138
 
1129
1139
  * Autodetect Rails 3 applications
1130
1140
  * Turn on auto-escaping for Rails 3 apps
1131
1141
  * Check Model.create() for mass assignment
1132
1142
 
1133
- ## 0.3.1
1143
+ ## 0.3.1 - 2011-05-03
1134
1144
 
1135
1145
  * Always output a line number in tabbed output format
1136
1146
  * Restrict characters in category name in tabbed output format to
1137
1147
  word characters and spaces, for Hudson/Jenkins plugin
1138
1148
 
1139
- ## 0.3.0
1149
+ ## 0.3.0 - 2011-03-21
1140
1150
 
1141
1151
  * Check for SQL injection in calls using constantize()
1142
1152
  * Check for SQL injection in calls to count_by_sql()
1143
1153
 
1144
- ## 0.2.2
1154
+ ## 0.2.2 - 2011-02-22
1145
1155
 
1146
1156
  * Fix version_between? when no Rails version is specified
1147
1157
 
1148
- ## 0.2.1
1158
+ ## 0.2.1 - 2011-02-18
1149
1159
 
1150
1160
  * Add code snippet to tab output messages
1151
1161
 
1152
- ## 0.2.0
1162
+ ## 0.2.0 - 2011-02-16
1153
1163
 
1154
1164
  * Add check for mail_to vulnerability - CVE-2011-0446
1155
1165
  * Add check for CSRF weakness - CVE-2011-0447
1156
1166
 
1157
- ## 0.1.1
1167
+ ## 0.1.1 - 2011-01-25
1158
1168
 
1159
1169
  * Be more permissive with ActiveSupport version
1160
1170
 
1161
- ## 0.1.0
1171
+ ## 0.1.0 - 2011-01-18
1162
1172
 
1163
1173
  * Check link_to for XSS (because arguments are not escaped)
1164
1174
  * Process layouts better (although not perfectly yet)
@@ -19,7 +19,11 @@ class Brakeman::CheckReverseTabnabbing < Brakeman::BaseCheck
19
19
  return unless hash? html_opts
20
20
 
21
21
  target = hash_access html_opts, :target
22
- return unless target && string?(target) && target.value == "_blank"
22
+ unless target &&
23
+ (string?(target) && target.value == "_blank" ||
24
+ symbol?(target) && target.value == :_blank)
25
+ return
26
+ end
23
27
 
24
28
  target_url = result[:block] ? result[:call].first_arg : result[:call].second_arg
25
29
 
@@ -19,16 +19,17 @@ module Brakeman
19
19
  end
20
20
  end
21
21
 
22
+ STRING_LENGTH_LIMIT = 50
23
+
22
24
  # Join two string literals into one.
23
25
  def join_strings lhs, rhs, original_exp = nil
24
26
  if string? lhs and string? rhs
25
- result = Sexp.new(:str).line(lhs.line)
26
- result.value = lhs.value + rhs.value
27
-
28
- if result.value.length > 50
27
+ if (lhs.value.length + rhs.value.length > STRING_LENGTH_LIMIT)
29
28
  # Avoid gigantic strings
30
29
  lhs
31
30
  else
31
+ result = Sexp.new(:str).line(lhs.line)
32
+ result.value = lhs.value + rhs.value
32
33
  result
33
34
  end
34
35
  elsif call? lhs and lhs.method == :+ and string? lhs.first_arg and string? rhs
@@ -19,7 +19,7 @@ class Brakeman::Report::Text < Brakeman::Report::Base
19
19
  add_chunk generate_controllers if tracker.options[:debug] or tracker.options[:report_routes]
20
20
  add_chunk generate_templates if tracker.options[:debug]
21
21
  add_chunk generate_obsolete
22
- add_chunk generate_errors
22
+ add_chunk generate_errors
23
23
  add_chunk generate_warnings
24
24
  end
25
25
 
@@ -51,7 +51,7 @@ class Brakeman::Report::Text < Brakeman::Report::Base
51
51
 
52
52
  def generate_header
53
53
  [
54
- header("Brakeman Report"),
54
+ header("Brakeman Report"),
55
55
  label("Application Path", tracker.app_path),
56
56
  label("Rails Version", rails_version),
57
57
  label("Brakeman Version", Brakeman::Version),
@@ -92,7 +92,7 @@ class Brakeman::Report::Text < Brakeman::Report::Base
92
92
  HighLine.color("No warnings found", :bold, :green)
93
93
  else
94
94
  warnings = tracker.filtered_warnings.sort_by do |w|
95
- [w.confidence, w.warning_type, w.fingerprint]
95
+ [w.confidence, w.warning_type, w.file, w.line, w.fingerprint]
96
96
  end.map do |w|
97
97
  output_warning w
98
98
  end
@@ -140,7 +140,7 @@ class Brakeman::Report::Text < Brakeman::Report::Base
140
140
  end
141
141
 
142
142
  double_space "Template Output", template_rows.sort_by { |name, value| name.to_s }.map { |template|
143
- [HighLine.new.color(template.first.to_s << "\n", :cyan)] + template[1]
143
+ [HighLine.new.color("#{template.first}\n", :cyan)] + template[1]
144
144
  }.compact
145
145
  end
146
146
 
@@ -211,4 +211,3 @@ class Brakeman::Report::Text < Brakeman::Report::Base
211
211
  double_space "Controller Overview", controllers
212
212
  end
213
213
  end
214
-
@@ -1,3 +1,3 @@
1
1
  module Brakeman
2
- Version = "4.7.0"
2
+ Version = "4.7.1"
3
3
  end
@@ -371,7 +371,12 @@ class Sexp
371
371
  # s(:block, s(:lvar, :y), s(:call, nil, :z, s(:arglist))))
372
372
  def block_call
373
373
  expect :iter
374
- self[1]
374
+
375
+ if self[1].node_type == :lambda
376
+ s(:call, nil, :lambda).line(self.line)
377
+ else
378
+ self[1]
379
+ end
375
380
  end
376
381
 
377
382
  #Returns block of a call with a block.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brakeman
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.7.0
4
+ version: 4.7.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: 2019-10-16 00:00:00.000000000 Z
11
+ date: 2019-10-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Brakeman detects security vulnerabilities in Ruby on Rails applications
14
14
  via static analysis.