actionpack 6.0.4.2 → 6.0.4.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actionpack might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/lib/action_dispatch/middleware/executor.rb +1 -1
- data/lib/action_dispatch/middleware/host_authorization.rb +29 -8
- data/lib/action_pack/gem_version.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c705c4b40454d414cc933856c706083ac953a933ebd5cc2659733a44a059eab9
|
4
|
+
data.tar.gz: 952b0ca0f709f485aacd9f52e36f4e2fe00dc7a728bde80c1ad4d9c73e5891eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 148aae6042b0a53fbf2965816c887493643c0fdea905334f39e9a081b9bc9e7e6cc223a9a542e014cdff938044a982af9587c06903d31f31f38a37bbaed8762b
|
7
|
+
data.tar.gz: 942a986779a83202ce047a85ecd01845001f1ca85e92133b5ec48066e1fdd4dabdacc91716a00356236e3136c024aedec1c3160a246ede3e8c86fdb7e81c4ced
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
## Rails 6.0.4.6 (February 11, 2022) ##
|
2
|
+
|
3
|
+
* No changes.
|
4
|
+
|
5
|
+
|
6
|
+
## Rails 6.0.4.5 (February 11, 2022) ##
|
7
|
+
|
8
|
+
* Under certain circumstances, the middleware isn't informed that the
|
9
|
+
response body has been fully closed which result in request state not
|
10
|
+
being fully reset before the next request
|
11
|
+
|
12
|
+
[CVE-2022-23633]
|
13
|
+
|
14
|
+
|
15
|
+
## Rails 6.0.4.4 (December 15, 2021) ##
|
16
|
+
|
17
|
+
* Fix issue with host protection not allowing host with port in development.
|
18
|
+
|
19
|
+
|
20
|
+
## Rails 6.0.4.3 (December 14, 2021) ##
|
21
|
+
|
22
|
+
* Fix issue with host protection not allowing localhost in development.
|
23
|
+
|
24
|
+
|
1
25
|
## Rails 6.0.4.2 (December 14, 2021) ##
|
2
26
|
|
3
27
|
* Fix X_FORWARDED_HOST protection. [CVE-2021-44528]
|
@@ -10,6 +10,17 @@ module ActionDispatch
|
|
10
10
|
# application will be executed and rendered. If no +response_app+ is given, a
|
11
11
|
# default one will run, which responds with +403 Forbidden+.
|
12
12
|
class HostAuthorization
|
13
|
+
ALLOWED_HOSTS_IN_DEVELOPMENT = [".localhost", IPAddr.new("0.0.0.0/0"), IPAddr.new("::/0")]
|
14
|
+
PORT_REGEX = /(?::\d+)/ # :nodoc:
|
15
|
+
IPV4_HOSTNAME = /(?<host>\d+\.\d+\.\d+\.\d+)#{PORT_REGEX}?/ # :nodoc:
|
16
|
+
IPV6_HOSTNAME = /(?<host>[a-f0-9]*:[a-f0-9.:]+)/i # :nodoc:
|
17
|
+
IPV6_HOSTNAME_WITH_PORT = /\[#{IPV6_HOSTNAME}\]#{PORT_REGEX}/i # :nodoc:
|
18
|
+
VALID_IP_HOSTNAME = Regexp.union( # :nodoc:
|
19
|
+
/\A#{IPV4_HOSTNAME}\z/,
|
20
|
+
/\A#{IPV6_HOSTNAME}\z/,
|
21
|
+
/\A#{IPV6_HOSTNAME_WITH_PORT}\z/,
|
22
|
+
)
|
23
|
+
|
13
24
|
class Permissions # :nodoc:
|
14
25
|
def initialize(hosts)
|
15
26
|
@hosts = sanitize_hosts(hosts)
|
@@ -21,11 +32,17 @@ module ActionDispatch
|
|
21
32
|
|
22
33
|
def allows?(host)
|
23
34
|
@hosts.any? do |allowed|
|
24
|
-
allowed
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
35
|
+
if allowed.is_a?(IPAddr)
|
36
|
+
begin
|
37
|
+
allowed === extract_hostname(host)
|
38
|
+
rescue
|
39
|
+
# IPAddr#=== raises an error if you give it a hostname instead of
|
40
|
+
# IP. Treat similar errors as blocked access.
|
41
|
+
false
|
42
|
+
end
|
43
|
+
else
|
44
|
+
allowed === host
|
45
|
+
end
|
29
46
|
end
|
30
47
|
end
|
31
48
|
|
@@ -41,16 +58,20 @@ module ActionDispatch
|
|
41
58
|
end
|
42
59
|
|
43
60
|
def sanitize_regexp(host)
|
44
|
-
/\A#{host}
|
61
|
+
/\A#{host}#{PORT_REGEX}?\z/
|
45
62
|
end
|
46
63
|
|
47
64
|
def sanitize_string(host)
|
48
65
|
if host.start_with?(".")
|
49
|
-
/\A([a-z0-9-]+\.)?#{Regexp.escape(host[1..-1])}
|
66
|
+
/\A([a-z0-9-]+\.)?#{Regexp.escape(host[1..-1])}#{PORT_REGEX}?\z/i
|
50
67
|
else
|
51
|
-
/\A#{Regexp.escape host}
|
68
|
+
/\A#{Regexp.escape host}#{PORT_REGEX}?\z/i
|
52
69
|
end
|
53
70
|
end
|
71
|
+
|
72
|
+
def extract_hostname(host)
|
73
|
+
host.slice(VALID_IP_HOSTNAME, "host") || host
|
74
|
+
end
|
54
75
|
end
|
55
76
|
|
56
77
|
DEFAULT_RESPONSE_APP = -> env do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actionpack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.4.
|
4
|
+
version: 6.0.4.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.0.4.
|
19
|
+
version: 6.0.4.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 6.0.4.
|
26
|
+
version: 6.0.4.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,28 +98,28 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - '='
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 6.0.4.
|
101
|
+
version: 6.0.4.6
|
102
102
|
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
106
|
- - '='
|
107
107
|
- !ruby/object:Gem::Version
|
108
|
-
version: 6.0.4.
|
108
|
+
version: 6.0.4.6
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: activemodel
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
113
|
- - '='
|
114
114
|
- !ruby/object:Gem::Version
|
115
|
-
version: 6.0.4.
|
115
|
+
version: 6.0.4.6
|
116
116
|
type: :development
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
120
|
- - '='
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 6.0.4.
|
122
|
+
version: 6.0.4.6
|
123
123
|
description: Web apps on Rails. Simple, battle-tested conventions for building and
|
124
124
|
testing MVC web applications. Works with any Rack-compatible server.
|
125
125
|
email: david@loudthinking.com
|
@@ -310,10 +310,10 @@ licenses:
|
|
310
310
|
- MIT
|
311
311
|
metadata:
|
312
312
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
313
|
-
changelog_uri: https://github.com/rails/rails/blob/v6.0.4.
|
314
|
-
documentation_uri: https://api.rubyonrails.org/v6.0.4.
|
313
|
+
changelog_uri: https://github.com/rails/rails/blob/v6.0.4.6/actionpack/CHANGELOG.md
|
314
|
+
documentation_uri: https://api.rubyonrails.org/v6.0.4.6/
|
315
315
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
316
|
-
source_code_uri: https://github.com/rails/rails/tree/v6.0.4.
|
316
|
+
source_code_uri: https://github.com/rails/rails/tree/v6.0.4.6/actionpack
|
317
317
|
post_install_message:
|
318
318
|
rdoc_options: []
|
319
319
|
require_paths:
|
@@ -330,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
330
|
version: '0'
|
331
331
|
requirements:
|
332
332
|
- none
|
333
|
-
rubygems_version: 3.2.
|
333
|
+
rubygems_version: 3.2.22
|
334
334
|
signing_key:
|
335
335
|
specification_version: 4
|
336
336
|
summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
|