actionpack 7.1.5 → 7.1.5.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: ef6ded6ec75402697cbeaf5e35774fc5883ec6dea9a31c9698b28949c0b9547f
4
- data.tar.gz: d31034f579dbab96df8449bbe31b449aa6c6d94711ce0f394ed3933bd316546b
3
+ metadata.gz: e2aff0dde19af40e507e288105ed67055af0847d0c37ad34de7cc6b3a630df02
4
+ data.tar.gz: 6718ca936b16397966ca7fbf39d6f9586313074d4255804532615d04f9c86a6d
5
5
  SHA512:
6
- metadata.gz: 563f1655070799cff368211fbe55ce13d4cd8a5984ca16d9c94df8fb6fec119c644d0a43a3fadf088cf2df019d4c6266a1e36ea4e3de1a82dbdf92f8e100d3c1
7
- data.tar.gz: 170f1c5406ee4c8d740d50b63fd74d8c803b3aa4f8a16b69d73355949bb7a9d7835d4118d685050c3dd967cac6933403e1097575ab1d9e4dbfbdce292defe978
6
+ metadata.gz: 0a7c6df6a5e8d50ea2d2d18aea80e255c270ffb51163a6291ca72e05740cbbaae83621b6c054939cfaf3042f281a7760dcc7bb717c2da525557a87c05205f6ed
7
+ data.tar.gz: 830503286b4ec58e7b1dc45e7d51c7cfa81c5b92d6d13f7021320991870abeb353888084c2d4140019c07c3c40060a4ce3cee82548ac9f3e08abe7faaaeb20e4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## Rails 7.1.5.1 (December 10, 2024) ##
2
+
3
+ * Add validation to content security policies to disallow spaces and semicolons.
4
+ Developers should use multiple arguments, and different directive methods instead.
5
+
6
+ [CVE-2024-54133]
7
+
8
+ *Gannon McGibbon*
9
+
10
+
1
11
  ## Rails 7.1.5 (October 30, 2024) ##
2
12
 
3
13
  * No changes.
@@ -24,6 +24,9 @@ module ActionDispatch # :nodoc:
24
24
  # policy.report_uri "/csp-violation-report-endpoint"
25
25
  # end
26
26
  class ContentSecurityPolicy
27
+ class InvalidDirectiveError < StandardError
28
+ end
29
+
27
30
  class Middleware
28
31
  def initialize(app)
29
32
  @app = app
@@ -317,9 +320,9 @@ module ActionDispatch # :nodoc:
317
320
  @directives.map do |directive, sources|
318
321
  if sources.is_a?(Array)
319
322
  if nonce && nonce_directive?(directive, nonce_directives)
320
- "#{directive} #{build_directive(sources, context).join(' ')} 'nonce-#{nonce}'"
323
+ "#{directive} #{build_directive(directive, sources, context).join(' ')} 'nonce-#{nonce}'"
321
324
  else
322
- "#{directive} #{build_directive(sources, context).join(' ')}"
325
+ "#{directive} #{build_directive(directive, sources, context).join(' ')}"
323
326
  end
324
327
  elsif sources
325
328
  directive
@@ -329,8 +332,22 @@ module ActionDispatch # :nodoc:
329
332
  end
330
333
  end
331
334
 
332
- def build_directive(sources, context)
333
- sources.map { |source| resolve_source(source, context) }
335
+ def validate(directive, sources)
336
+ sources.flatten.each do |source|
337
+ if source.include?(";") || source != source.gsub(/[[:space:]]/, "")
338
+ raise InvalidDirectiveError, <<~MSG.squish
339
+ Invalid Content Security Policy #{directive}: "#{source}".
340
+ Directive values must not contain whitespace or semicolons.
341
+ Please use multiple arguments or other directive methods instead.
342
+ MSG
343
+ end
344
+ end
345
+ end
346
+
347
+ def build_directive(directive, sources, context)
348
+ resolved_sources = sources.map { |source| resolve_source(source, context) }
349
+
350
+ validate(directive, resolved_sources)
334
351
  end
335
352
 
336
353
  def resolve_source(source, context)
@@ -10,7 +10,7 @@ module ActionPack
10
10
  MAJOR = 7
11
11
  MINOR = 1
12
12
  TINY = 5
13
- PRE = nil
13
+ PRE = "1"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
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: 7.1.5
4
+ version: 7.1.5.1
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: 2024-10-31 00:00:00.000000000 Z
11
+ date: 2024-12-10 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: 7.1.5
19
+ version: 7.1.5.1
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: 7.1.5
26
+ version: 7.1.5.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 7.1.5
131
+ version: 7.1.5.1
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 7.1.5
138
+ version: 7.1.5.1
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: activemodel
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 7.1.5
145
+ version: 7.1.5.1
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 7.1.5
152
+ version: 7.1.5.1
153
153
  description: Web apps on Rails. Simple, battle-tested conventions for building and
154
154
  testing MVC web applications. Works with any Rack-compatible server.
155
155
  email: david@loudthinking.com
@@ -346,10 +346,10 @@ licenses:
346
346
  - MIT
347
347
  metadata:
348
348
  bug_tracker_uri: https://github.com/rails/rails/issues
349
- changelog_uri: https://github.com/rails/rails/blob/v7.1.5/actionpack/CHANGELOG.md
350
- documentation_uri: https://api.rubyonrails.org/v7.1.5/
349
+ changelog_uri: https://github.com/rails/rails/blob/v7.1.5.1/actionpack/CHANGELOG.md
350
+ documentation_uri: https://api.rubyonrails.org/v7.1.5.1/
351
351
  mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
352
- source_code_uri: https://github.com/rails/rails/tree/v7.1.5/actionpack
352
+ source_code_uri: https://github.com/rails/rails/tree/v7.1.5.1/actionpack
353
353
  rubygems_mfa_required: 'true'
354
354
  post_install_message:
355
355
  rdoc_options: []
@@ -367,7 +367,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
367
367
  version: '0'
368
368
  requirements:
369
369
  - none
370
- rubygems_version: 3.5.16
370
+ rubygems_version: 3.5.22
371
371
  signing_key:
372
372
  specification_version: 4
373
373
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).