activesupport 6.0.4.5 → 6.0.4.8

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

Potentially problematic release.


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

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9508faca3fe6c987d450b2c53f5f3d223b0d667991c19cf515109140b7066955
4
- data.tar.gz: 435c505c549a6e3fa046f5b9833ff927ce0f57b46684828a98b7e157c069f573
3
+ metadata.gz: c10e4238f073719e09a040bcb9d75ffb447e6255ce7794099f9d3f6ae38b5b32
4
+ data.tar.gz: e4044e3a0e76c0c732107d921d6832740dc41b6ac95bf912a70505a1d43d6a80
5
5
  SHA512:
6
- metadata.gz: 9e2bd0fc43da4248714a20ef888479d3510dc6e007e0dc10db5bae8bcd9fa36c06548184366f4adc3ba5fdd290ef12654cd341e0fe6df372a0c047d5fc4caeea
7
- data.tar.gz: eab82f642cb3d1786bcfb54b7e2af64dc003c3a0511f5bf851c6c82dde35a3fd7eedeb65f8fdc496b03ac645ef1e56f4f9405feb03b1cd9e483b49a18f5ca9eb
6
+ metadata.gz: 3ab4066d1f1b568f9ed38f92a40d18515557f4d1f3eea87a571c2f3e3a6fd1d237229fb890cc383b4b943de410ae52347251da3675f79f872861791b10a00485
7
+ data.tar.gz: d586fccfd8c78eaccba32a46275e84bef0fefec92ace78bec50cef3d34c053e3842dee2380b020464f4f6c5a9b94b6815d5275438343ae02e5018cfb36aefb09
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## Rails 6.0.4.8 (April 26, 2022) ##
2
+
3
+ * Fix and add protections for XSS in `ActionView::Helpers` and `ERB::Util`.
4
+
5
+ Add the method `ERB::Util.xml_name_escape` to escape dangerous characters
6
+ in names of tags and names of attributes, following the specification of XML.
7
+
8
+ *Álvaro Martín Fraguas*
9
+
10
+
11
+ ## Rails 6.0.4.7 (March 08, 2022) ##
12
+
13
+ * No changes.
14
+
15
+
16
+ ## Rails 6.0.4.6 (February 11, 2022) ##
17
+
18
+ * Fix Reloader method signature to work with the new Executor signature
19
+
20
+
1
21
  ## Rails 6.0.4.5 (February 11, 2022) ##
2
22
 
3
23
  * No changes.
@@ -12,6 +12,14 @@ class ERB
12
12
  HTML_ESCAPE_ONCE_REGEXP = /["><']|&(?!([a-zA-Z]+|(#\d+)|(#[xX][\dA-Fa-f]+));)/
13
13
  JSON_ESCAPE_REGEXP = /[\u2028\u2029&><]/u
14
14
 
15
+ # Following XML requirements: https://www.w3.org/TR/REC-xml/#NT-Name
16
+ TAG_NAME_START_REGEXP_SET = ":A-Z_a-z\u{C0}-\u{D6}\u{D8}-\u{F6}\u{F8}-\u{2FF}\u{370}-\u{37D}\u{37F}-\u{1FFF}" \
17
+ "\u{200C}-\u{200D}\u{2070}-\u{218F}\u{2C00}-\u{2FEF}\u{3001}-\u{D7FF}\u{F900}-\u{FDCF}" \
18
+ "\u{FDF0}-\u{FFFD}\u{10000}-\u{EFFFF}"
19
+ TAG_NAME_START_REGEXP = /[^#{TAG_NAME_START_REGEXP_SET}]/
20
+ TAG_NAME_FOLLOWING_REGEXP = /[^#{TAG_NAME_START_REGEXP_SET}\-.0-9\u{B7}\u{0300}-\u{036F}\u{203F}-\u{2040}]/
21
+ TAG_NAME_REPLACEMENT_CHAR = "_"
22
+
15
23
  # A utility method for escaping HTML tag characters.
16
24
  # This method is also aliased as <tt>h</tt>.
17
25
  #
@@ -116,6 +124,26 @@ class ERB
116
124
  end
117
125
 
118
126
  module_function :json_escape
127
+
128
+ # A utility method for escaping XML names of tags and names of attributes.
129
+ #
130
+ # xml_name_escape('1 < 2 & 3')
131
+ # # => "1___2___3"
132
+ #
133
+ # It follows the requirements of the specification: https://www.w3.org/TR/REC-xml/#NT-Name
134
+ def xml_name_escape(name)
135
+ name = name.to_s
136
+ return "" if name.blank?
137
+
138
+ starting_char = name[0].gsub(TAG_NAME_START_REGEXP, TAG_NAME_REPLACEMENT_CHAR)
139
+
140
+ return starting_char if name.size == 1
141
+
142
+ following_chars = name[1..-1].gsub(TAG_NAME_FOLLOWING_REGEXP, TAG_NAME_REPLACEMENT_CHAR)
143
+
144
+ starting_char + following_chars
145
+ end
146
+ module_function :xml_name_escape
119
147
  end
120
148
  end
121
149
 
@@ -10,7 +10,7 @@ module ActiveSupport
10
10
  MAJOR = 6
11
11
  MINOR = 0
12
12
  TINY = 4
13
- PRE = "5"
13
+ PRE = "8"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
@@ -58,7 +58,7 @@ module ActiveSupport
58
58
  prepare!
59
59
  end
60
60
 
61
- def self.run! # :nodoc:
61
+ def self.run!(reset: false) # :nodoc:
62
62
  if check!
63
63
  super
64
64
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activesupport
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.4.5
4
+ version: 6.0.4.8
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: 2022-02-11 00:00:00.000000000 Z
11
+ date: 2022-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -359,10 +359,10 @@ licenses:
359
359
  - MIT
360
360
  metadata:
361
361
  bug_tracker_uri: https://github.com/rails/rails/issues
362
- changelog_uri: https://github.com/rails/rails/blob/v6.0.4.5/activesupport/CHANGELOG.md
363
- documentation_uri: https://api.rubyonrails.org/v6.0.4.5/
362
+ changelog_uri: https://github.com/rails/rails/blob/v6.0.4.8/activesupport/CHANGELOG.md
363
+ documentation_uri: https://api.rubyonrails.org/v6.0.4.8/
364
364
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
365
- source_code_uri: https://github.com/rails/rails/tree/v6.0.4.5/activesupport
365
+ source_code_uri: https://github.com/rails/rails/tree/v6.0.4.8/activesupport
366
366
  post_install_message:
367
367
  rdoc_options:
368
368
  - "--encoding"
@@ -380,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
380
  - !ruby/object:Gem::Version
381
381
  version: '0'
382
382
  requirements: []
383
- rubygems_version: 3.2.22
383
+ rubygems_version: 3.1.6
384
384
  signing_key:
385
385
  specification_version: 4
386
386
  summary: A toolkit of support libraries and Ruby core extensions extracted from the