rack 2.2.3.1 → 2.2.4
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 +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/rack/etag.rb +2 -0
- data/lib/rack/lint.rb +2 -2
- data/lib/rack/query_parser.rb +6 -2
- data/lib/rack/utils.rb +5 -2
- data/lib/rack/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 562d6b2cb433ea758545c29074629d82b364bf197dfab096c1821ffb72928e3c
|
4
|
+
data.tar.gz: 5adf005621955c2a5a524f966603c2d8c0f7cf640f6fff4439d024a921f69c4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8a134688af4df517e1483bca22c63582e5b29d6d4f2b71c11b220ee57642d046a4188038a45d02e20357b6823c7938c57aa45fd88f504732a76b58c6bf70eb7
|
7
|
+
data.tar.gz: 81164557b5a8e25d35ff7f2e2889ea7e6eb04df8a23b42513fdcffa7d85dfd07f925372c703f5bf6a9a1fea2f3b842de5565cb0608d713b4cfe81440007e1d2e
|
data/CHANGELOG.md
CHANGED
@@ -2,13 +2,22 @@
|
|
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.4] - 2022-06-30
|
6
|
+
|
7
|
+
- Better support for lower case headers in `Rack::ETag` middleware. ([#1919](https://github.com/rack/rack/pull/1919), [@ioquatix](https://github.com/ioquatix))
|
8
|
+
- Use custom exception on params too deep error. ([#1838](https://github.com/rack/rack/pull/1838), [@simi](https://github.com/simi))
|
9
|
+
|
5
10
|
## [2.2.3.1] - 2022-05-27
|
6
11
|
|
12
|
+
### Security
|
13
|
+
|
7
14
|
- [CVE-2022-30123] Fix shell escaping issue in Common Logger
|
8
15
|
- [CVE-2022-30122] Restrict parsing of broken MIME attachments
|
9
16
|
|
10
17
|
## [2.2.3] - 2020-02-11
|
11
18
|
|
19
|
+
### Security
|
20
|
+
|
12
21
|
- [CVE-2020-8184] Only decode cookie values
|
13
22
|
|
14
23
|
## [2.2.2] - 2020-02-11
|
data/lib/rack/etag.rb
CHANGED
data/lib/rack/lint.rb
CHANGED
@@ -48,10 +48,10 @@ module Rack
|
|
48
48
|
|
49
49
|
## and returns an Array of exactly three values:
|
50
50
|
ary = @app.call(env)
|
51
|
-
assert("response
|
51
|
+
assert("response is not an Array, but #{ary.class}") {
|
52
52
|
ary.kind_of? Array
|
53
53
|
}
|
54
|
-
assert("response array
|
54
|
+
assert("response array has #{ary.size} elements instead of 3") {
|
55
55
|
ary.size == 3
|
56
56
|
}
|
57
57
|
|
data/lib/rack/query_parser.rb
CHANGED
@@ -16,6 +16,10 @@ module Rack
|
|
16
16
|
# sequence.
|
17
17
|
class InvalidParameterError < ArgumentError; end
|
18
18
|
|
19
|
+
# ParamsTooDeepError is the error that is raised when params are recursively
|
20
|
+
# nested over the specified limit.
|
21
|
+
class ParamsTooDeepError < RangeError; end
|
22
|
+
|
19
23
|
def self.make_default(key_space_limit, param_depth_limit)
|
20
24
|
new Params, key_space_limit, param_depth_limit
|
21
25
|
end
|
@@ -81,7 +85,7 @@ module Rack
|
|
81
85
|
# the structural types represented by two different parameter names are in
|
82
86
|
# conflict, a ParameterTypeError is raised.
|
83
87
|
def normalize_params(params, name, v, depth)
|
84
|
-
raise
|
88
|
+
raise ParamsTooDeepError if depth <= 0
|
85
89
|
|
86
90
|
name =~ %r(\A[\[\]]*([^\[\]]+)\]*)
|
87
91
|
k = $1 || ''
|
@@ -168,7 +172,7 @@ module Rack
|
|
168
172
|
|
169
173
|
def []=(key, value)
|
170
174
|
@size += key.size if key && !@params.key?(key)
|
171
|
-
raise
|
175
|
+
raise ParamsTooDeepError, 'exceeded available parameter key space' if @size > @limit
|
172
176
|
@params[key] = value
|
173
177
|
end
|
174
178
|
|
data/lib/rack/utils.rb
CHANGED
@@ -22,6 +22,9 @@ module Rack
|
|
22
22
|
COMMON_SEP = QueryParser::COMMON_SEP
|
23
23
|
KeySpaceConstrainedParams = QueryParser::Params
|
24
24
|
|
25
|
+
RFC2822_DAY_NAME = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ]
|
26
|
+
RFC2822_MONTH_NAME = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ]
|
27
|
+
|
25
28
|
class << self
|
26
29
|
attr_accessor :default_query_parser
|
27
30
|
end
|
@@ -327,8 +330,8 @@ module Rack
|
|
327
330
|
# weekday and month.
|
328
331
|
#
|
329
332
|
def rfc2109(time)
|
330
|
-
wday =
|
331
|
-
mon =
|
333
|
+
wday = RFC2822_DAY_NAME[time.wday]
|
334
|
+
mon = RFC2822_MONTH_NAME[time.mon - 1]
|
332
335
|
time.strftime("#{wday}, %d-#{mon}-%Y %H:%M:%S GMT")
|
333
336
|
end
|
334
337
|
|
data/lib/rack/version.rb
CHANGED
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.
|
4
|
+
version: 2.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leah Neukirchen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|