rack 2.2.6 → 2.2.6.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rack might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d54f10515698af167ad8556adf035c50ee77ce1709ae10dba45eda21053f074d
4
- data.tar.gz: f6d5ba0e92c0e8e0922748a92aae4050aa634bcad66ef5b27ccc291357f80ef0
3
+ metadata.gz: 58f641d1882668bf5e150710676e3067def0089d87706cf4b233b11eb5e36cc7
4
+ data.tar.gz: 1ea7a963d41498945e0377b9637ca37df23c9fa41139e83517b37de512be41d7
5
5
  SHA512:
6
- metadata.gz: 7e6dc127a2d5df49186e309c2a766f0598428503a2e08308c72b7f91a3291dab391a245c61d1dcbce9a2cf0e4e30cb9d6b213949873167e10da55cd1731c2833
7
- data.tar.gz: 5a995a9dceda0364ed9715c162b14b92d7cb69d8078fb565d4cf78c0a7e495760b5715ec87e2998e1a0f7350cdb126d6ec9b2178cbe511a258164f36e4f00b68
6
+ metadata.gz: cafc52d78b4b998df9a973915ccd925de929d9b3b263369c76d3c3efb46d636752dd7260947507c3b4a5a51bab628c007567ef5e5b0759b8b59753ecab93c0f3
7
+ data.tar.gz: c161e73e76fea22a0ef5b4c53c747a63591975c417e426697694d399f204806e6e39ff45e382f7f1938b3c8add90f4492c0c5d754d57685cfc12b486b8ef897f
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference [Keep A Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
+ ## [2.2.6.2] - 2022-01-17
6
+
7
+ - [CVE-2022-44570] Fix ReDoS in Rack::Utils.get_byte_ranges
8
+
9
+ ## [2.2.6.1] - 2022-01-17
10
+
11
+ - [CVE-2022-44571] Fix ReDoS vulnerability in multipart parser
12
+ - [CVE-2022-44572] Forbid control characters in attributes (also ReDoS)
13
+
5
14
  ## [2.2.6] - 2022-01-17
6
15
 
7
16
  - Extend `Rack::MethodOverride` to handle `QueryParser::ParamsTooDeepError` error. ([#2011](https://github.com/rack/rack/pull/2011), [@byroot](https://github.com/byroot))
@@ -18,10 +18,10 @@ module Rack
18
18
  VALUE = /"(?:\\"|[^"])*"|#{TOKEN}/
19
19
  BROKEN = /^#{CONDISP}.*;\s*filename=(#{VALUE})/i
20
20
  MULTIPART_CONTENT_TYPE = /Content-Type: (.*)#{EOL}/ni
21
- MULTIPART_CONTENT_DISPOSITION = /Content-Disposition:.*;\s*name=(#{VALUE})/ni
21
+ MULTIPART_CONTENT_DISPOSITION = /Content-Disposition:[^:]*;\s*name=(#{VALUE})/ni
22
22
  MULTIPART_CONTENT_ID = /Content-ID:\s*([^#{EOL}]*)/ni
23
23
  # Updated definitions from RFC 2231
24
- ATTRIBUTE_CHAR = %r{[^ \t\v\n\r)(><@,;:\\"/\[\]?='*%]}
24
+ ATTRIBUTE_CHAR = %r{[^ \x00-\x1f\x7f)(><@,;:\\"/\[\]?='*%]}
25
25
  ATTRIBUTE = /#{ATTRIBUTE_CHAR}+/
26
26
  SECTION = /\*[0-9]+/
27
27
  REGULAR_PARAMETER_NAME = /#{ATTRIBUTE}#{SECTION}?/
data/lib/rack/utils.rb CHANGED
@@ -348,17 +348,18 @@ module Rack
348
348
  return nil unless http_range && http_range =~ /bytes=([^;]+)/
349
349
  ranges = []
350
350
  $1.split(/,\s*/).each do |range_spec|
351
- return nil unless range_spec =~ /(\d*)-(\d*)/
352
- r0, r1 = $1, $2
353
- if r0.empty?
354
- return nil if r1.empty?
351
+ return nil unless range_spec.include?('-')
352
+ range = range_spec.split('-')
353
+ r0, r1 = range[0], range[1]
354
+ if r0.nil? || r0.empty?
355
+ return nil if r1.nil?
355
356
  # suffix-byte-range-spec, represents trailing suffix of file
356
357
  r0 = size - r1.to_i
357
358
  r0 = 0 if r0 < 0
358
359
  r1 = size - 1
359
360
  else
360
361
  r0 = r0.to_i
361
- if r1.empty?
362
+ if r1.nil?
362
363
  r1 = size - 1
363
364
  else
364
365
  r1 = r1.to_i
data/lib/rack/version.rb CHANGED
@@ -20,7 +20,7 @@ module Rack
20
20
  VERSION.join(".")
21
21
  end
22
22
 
23
- RELEASE = "2.2.6"
23
+ RELEASE = "2.2.6.2"
24
24
 
25
25
  # Return the Rack release as a dotted string.
26
26
  def self.release
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.6
4
+ version: 2.2.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leah Neukirchen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-16 00:00:00.000000000 Z
11
+ date: 2023-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
184
184
  - !ruby/object:Gem::Version
185
185
  version: '0'
186
186
  requirements: []
187
- rubygems_version: 3.4.1
187
+ rubygems_version: 3.5.0.dev
188
188
  signing_key:
189
189
  specification_version: 4
190
190
  summary: A modular Ruby webserver interface.