rack 3.0.11 → 3.0.13

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.

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: 28b82d44ba189d0bbbc8bde52faa4aad3e333926291cdc20f62ede702b9cf02b
4
- data.tar.gz: a40e034c12ec76cd6f9506dfac3ab12438e3c9ffb5c40a7417b0b463758dd40b
3
+ metadata.gz: 1c864d1b0b86355469b17edefb5ac47e659ae4e47d156070615f12ba012117ce
4
+ data.tar.gz: 82fd6ccbc59081e2483e8bf541d669c3c1be5caa36418306b1009d0a2c396fff
5
5
  SHA512:
6
- metadata.gz: 04b8e6d85dc1667f282320d629931407897342cfa2c04ec673ed7150dcb27592fd7c0624ee8d02d5f71dcd8370237b5bc425f43b5d92b6fd58aa311153b75e8f
7
- data.tar.gz: b2720568c6fbc1b192e2b0dbbff7231ca4db86f56ff9c12e70385ba7d324c6f44938426071c022789a0f8d6d73a78e383b477332d39e873569860cc059ea1158
6
+ metadata.gz: f1425831596a8893831d295947e6cb33936616397aaf106855a2f30410b3b8b590d04a405d7de5211ff8a64608abd5a7fa9b02e1fce0b182bff37a0f9a57f095
7
+ data.tar.gz: a84716c10271fd19d6d3ae199424358615252136dcab72baf87ccf8ed9384c1b59a66a316d016937d28c555b556afd6d81084b3dfd75d5832ad14b05edb190c1
data/CHANGELOG.md CHANGED
@@ -2,7 +2,23 @@
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
- ## Unreleased
5
+ ## [3.0.13] - 2025-03-04
6
+
7
+ ### Security
8
+
9
+ - [CVE-2025-27111](https://github.com/rack/rack/security/advisories/GHSA-8cgq-6mh2-7j6v) Possible Log Injection in `Rack::Sendfile`.
10
+
11
+ ### Fixed
12
+
13
+ - Remove autoloads for constants no longer shipped with Rack. ([#2269](https://github.com/rack/rack/pull/2269), [@ccutrer](https://github.com/ccutrer))
14
+
15
+ ## [3.0.12] - 2025-02-12
16
+
17
+ ### Security
18
+
19
+ - [CVE-2025-25184](https://github.com/rack/rack/security/advisories/GHSA-7g2v-jj9q-g3rg) Possible Log Injection in `Rack::CommonLogger`.
20
+
21
+ ## [3.0.11] - 2024-05-10
6
22
 
7
23
  - Backport #2062 to 3-0-stable: Do not allow `BodyProxy` to respond to `to_str`, make `to_ary` call close . ([#2062](https://github.com/rack/rack/pull/2062), [@jeremyevans](https://github.com/jeremyevans))
8
24
 
@@ -10,6 +26,18 @@ All notable changes to this project will be documented in this file. For info on
10
26
 
11
27
  - Backport #2104 to 3-0-stable: Return empty when parsing a multi-part POST with only one end delimiter. ([#2164](https://github.com/rack/rack/pull/2164), [@JoeDupuis](https://github.com/JoeDupuis))
12
28
 
29
+ ## [3.0.9.1] - 2024-02-21
30
+
31
+ ### Security
32
+
33
+ * [CVE-2024-26146] Fixed ReDoS in Accept header parsing
34
+ * [CVE-2024-25126] Fixed ReDoS in Content Type header parsing
35
+ * [CVE-2024-26141] Reject Range headers which are too large
36
+
37
+ [CVE-2024-26146]: https://github.com/advisories/GHSA-54rr-7fvw-6x8f
38
+ [CVE-2024-25126]: https://github.com/advisories/GHSA-22f2-v57c-j9cx
39
+ [CVE-2024-26141]: https://github.com/advisories/GHSA-xj5v-6v4g-jfw6
40
+
13
41
  ## [3.0.9] - 2024-01-31
14
42
 
15
43
  - Fix incorrect content-length header that was emitted when `Rack::Response#write` was used in some situations. ([#2150](https://github.com/rack/rack/pull/2150), [@mattbrictson](https://github.com/mattbrictson))
@@ -24,6 +52,8 @@ All notable changes to this project will be documented in this file. For info on
24
52
 
25
53
  ## [3.0.6.1] - 2023-03-13
26
54
 
55
+ ### Security
56
+
27
57
  - [CVE-2023-27539] Avoid ReDoS in header parsing
28
58
 
29
59
  ## [3.0.6] - 2023-03-13
@@ -34,12 +64,16 @@ All notable changes to this project will be documented in this file. For info on
34
64
 
35
65
  - Split form/query parsing into two steps. ([#2038](https://github.com/rack/rack/pull/2038), [@matthewd](https://github.com/matthewd))
36
66
 
37
- ## [3.0.4.1] - 2023-03-02
67
+ ## [3.0.4.2] - 2023-03-02
68
+
69
+ ### Security
38
70
 
39
71
  - [CVE-2023-27530] Introduce multipart_total_part_limit to limit total parts
40
72
 
41
73
  ## [3.0.4.1] - 2023-01-17
42
74
 
75
+ ### Security
76
+
43
77
  - [CVE-2022-44571] Fix ReDoS vulnerability in multipart parser
44
78
  - [CVE-2022-44570] Fix ReDoS in Rack::Utils.get_byte_ranges
45
79
  - [CVE-2022-44572] Forbid control characters in attributes (also ReDoS)
@@ -160,6 +194,64 @@ All notable changes to this project will be documented in this file. For info on
160
194
  - Fix multipart filename generation for filenames that contain spaces. Encode spaces as "%20" instead of "+" which will be decoded properly by the multipart parser. ([#1736](https://github.com/rack/rack/pull/1645), [@muirdm](https://github.com/muirdm))
161
195
  - `Rack::Request#scheme` returns `ws` or `wss` when one of the `X-Forwarded-Scheme` / `X-Forwarded-Proto` headers is set to `ws` or `wss`, respectively. ([#1730](https://github.com/rack/rack/issues/1730), [@erwanst](https://github.com/erwanst))
162
196
 
197
+ ## [2.2.12] - 2025-03-04
198
+
199
+ ### Security
200
+
201
+ - [CVE-2025-27111](https://github.com/rack/rack/security/advisories/GHSA-8cgq-6mh2-7j6v) Possible Log Injection in `Rack::Sendfile`.
202
+
203
+ ## [2.2.11] - 2025-02-12
204
+
205
+ ### Security
206
+
207
+ - [CVE-2025-25184](https://github.com/rack/rack/security/advisories/GHSA-7g2v-jj9q-g3rg) Possible Log Injection in `Rack::CommonLogger`.
208
+
209
+ ## [2.2.10] - 2024-10-14
210
+
211
+ - Fix compatibility issues with Ruby v3.4.0. ([#2248](https://github.com/rack/rack/pull/2248), [@byroot](https://github.com/byroot))
212
+
213
+ ## [2.2.9] - 2023-03-21
214
+
215
+ - Return empty when parsing a multi-part POST with only one end delimiter. ([#2104](https://github.com/rack/rack/pull/2104), [@alpaca-tc])
216
+
217
+ ## [2.2.8] - 2023-07-31
218
+
219
+ - Regenerate SPEC ([#2102](https://github.com/rack/rack/pull/2102), [@skipkayhil](https://github.com/skipkayhil))
220
+ - Limit file extension length of multipart tempfiles ([#2015](https://github.com/rack/rack/pull/2015), [@dentarg](https://github.com/dentarg))
221
+ - Fix "undefined method DelegateClass for Rack::Session::Cookie:Class" ([#2092](https://github.com/rack/rack/pull/2092), [@onigra](https://github.com/onigra) [@dchandekstark](https://github.com/dchandekstark))
222
+
223
+ ## [2.2.7] - 2023-03-13
224
+
225
+ - Correct the year number in the changelog ([#2015](https://github.com/rack/rack/pull/2015), [@kimulab](https://github.com/kimulab))
226
+ - Support underscore in host names for Rack 2.2 (Fixes [#2070](https://github.com/rack/rack/issues/2070)) ([#2015](https://github.com/rack/rack/pull/2071), [@jeremyevans](https://github.com/jeremyevans))
227
+
228
+ ## [2.2.6.4] - 2023-03-13
229
+
230
+ - [CVE-2023-27539] Avoid ReDoS in header parsing
231
+
232
+ ## [2.2.6.3] - 2023-03-02
233
+
234
+ - [CVE-2023-27530] Introduce multipart_total_part_limit to limit total parts
235
+
236
+ ## [2.2.6.2] - 2023-01-17
237
+
238
+ - [CVE-2022-44570] Fix ReDoS in Rack::Utils.get_byte_ranges
239
+
240
+ ## [2.2.6.1] - 2023-01-17
241
+
242
+ - [CVE-2022-44571] Fix ReDoS vulnerability in multipart parser
243
+ - [CVE-2022-44572] Forbid control characters in attributes (also ReDoS)
244
+
245
+ ## [2.2.6] - 2023-01-17
246
+
247
+ - Extend `Rack::MethodOverride` to handle `QueryParser::ParamsTooDeepError` error. ([#2011](https://github.com/rack/rack/pull/2011), [@byroot](https://github.com/byroot))
248
+
249
+ ## [2.2.5] - 2022-12-27
250
+
251
+ ### Fixed
252
+
253
+ - `Rack::URLMap` uses non-deprecated form of `Regexp.new`. ([#1998](https://github.com/rack/rack/pull/1998), [@weizheheng](https://github.com/weizheheng))
254
+
163
255
  ## [2.2.4] - 2022-06-30
164
256
 
165
257
  - Better support for lower case headers in `Rack::ETag` middleware. ([#1919](https://github.com/rack/rack/pull/1919), [@ioquatix](https://github.com/ioquatix))
@@ -20,7 +20,7 @@ module Rack
20
20
  # The actual format is slightly different than the above due to the
21
21
  # separation of SCRIPT_NAME and PATH_INFO, and because the elapsed
22
22
  # time in seconds is included at the end.
23
- FORMAT = %{%s - %s [%s] "%s %s%s%s %s" %d %s %0.4f\n}
23
+ FORMAT = %{%s - %s [%s] "%s %s%s%s %s" %d %s %0.4f }
24
24
 
25
25
  # +logger+ can be any object that supports the +write+ or +<<+ methods,
26
26
  # which includes the standard library Logger. These methods are called
@@ -66,7 +66,8 @@ module Rack
66
66
  length,
67
67
  Utils.clock_time - began_at)
68
68
 
69
- msg.gsub!(/[^[:print:]\n]/) { |c| sprintf("\\x%x", c.ord) }
69
+ msg.gsub!(/[^[:print:]]/) { |c| sprintf("\\x%x", c.ord) }
70
+ msg[-1] = "\n"
70
71
 
71
72
  logger = @logger || request.get_header(RACK_ERRORS)
72
73
  # Standard library logger doesn't support write but it supports << which actually
data/lib/rack/sendfile.rb CHANGED
@@ -138,7 +138,7 @@ module Rack
138
138
  end
139
139
  when '', nil
140
140
  else
141
- env[RACK_ERRORS].puts "Unknown x-sendfile variation: '#{type}'.\n"
141
+ env[RACK_ERRORS].puts "Unknown x-sendfile variation: #{type.inspect}"
142
142
  end
143
143
  end
144
144
  response
data/lib/rack/version.rb CHANGED
@@ -25,7 +25,7 @@ module Rack
25
25
  VERSION
26
26
  end
27
27
 
28
- RELEASE = "3.0.11"
28
+ RELEASE = "3.0.13"
29
29
 
30
30
  # Return the Rack release as a dotted string.
31
31
  def self.release
data/lib/rack.rb CHANGED
@@ -15,8 +15,8 @@ require_relative 'rack/version'
15
15
  require_relative 'rack/constants'
16
16
 
17
17
  module Rack
18
- autoload :Builder, "rack/builder"
19
18
  autoload :BodyProxy, "rack/body_proxy"
19
+ autoload :Builder, "rack/builder"
20
20
  autoload :Cascade, "rack/cascade"
21
21
  autoload :Chunked, "rack/chunked"
22
22
  autoload :CommonLogger, "rack/common_logger"
@@ -24,14 +24,13 @@ module Rack
24
24
  autoload :Config, "rack/config"
25
25
  autoload :ContentLength, "rack/content_length"
26
26
  autoload :ContentType, "rack/content_type"
27
+ autoload :Deflater, "rack/deflater"
28
+ autoload :Directory, "rack/directory"
27
29
  autoload :ETag, "rack/etag"
28
30
  autoload :Events, "rack/events"
29
31
  autoload :File, "rack/file"
30
32
  autoload :Files, "rack/files"
31
- autoload :Deflater, "rack/deflater"
32
- autoload :Directory, "rack/directory"
33
33
  autoload :ForwardRequest, "rack/recursive"
34
- autoload :Handler, "rack/handler"
35
34
  autoload :Head, "rack/head"
36
35
  autoload :Headers, "rack/headers"
37
36
  autoload :Lint, "rack/lint"
@@ -40,32 +39,29 @@ module Rack
40
39
  autoload :MediaType, "rack/media_type"
41
40
  autoload :MethodOverride, "rack/method_override"
42
41
  autoload :Mime, "rack/mime"
42
+ autoload :MockRequest, "rack/mock_request"
43
+ autoload :MockResponse, "rack/mock_response"
44
+ autoload :Multipart, "rack/multipart"
43
45
  autoload :NullLogger, "rack/null_logger"
44
46
  autoload :QueryParser, "rack/query_parser"
45
47
  autoload :Recursive, "rack/recursive"
46
48
  autoload :Reloader, "rack/reloader"
49
+ autoload :Request, "rack/request"
50
+ autoload :Response, "rack/response"
47
51
  autoload :RewindableInput, "rack/rewindable_input"
48
52
  autoload :Runtime, "rack/runtime"
49
53
  autoload :Sendfile, "rack/sendfile"
50
- autoload :Server, "rack/server"
51
54
  autoload :ShowExceptions, "rack/show_exceptions"
52
55
  autoload :ShowStatus, "rack/show_status"
53
56
  autoload :Static, "rack/static"
54
57
  autoload :TempfileReaper, "rack/tempfile_reaper"
55
58
  autoload :URLMap, "rack/urlmap"
56
59
  autoload :Utils, "rack/utils"
57
- autoload :Multipart, "rack/multipart"
58
-
59
- autoload :MockRequest, "rack/mock_request"
60
- autoload :MockResponse, "rack/mock_response"
61
-
62
- autoload :Request, "rack/request"
63
- autoload :Response, "rack/response"
64
60
 
65
61
  module Auth
66
62
  autoload :Basic, "rack/auth/basic"
67
- autoload :AbstractRequest, "rack/auth/abstract/request"
68
- autoload :AbstractHandler, "rack/auth/abstract/handler"
69
63
  autoload :Digest, "rack/auth/digest"
64
+ autoload :AbstractHandler, "rack/auth/abstract/handler"
65
+ autoload :AbstractRequest, "rack/auth/abstract/request"
70
66
  end
71
67
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.11
4
+ version: 3.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leah Neukirchen
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-05-09 00:00:00.000000000 Z
10
+ date: 2025-03-04 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: minitest
@@ -149,7 +148,6 @@ metadata:
149
148
  changelog_uri: https://github.com/rack/rack/blob/main/CHANGELOG.md
150
149
  documentation_uri: https://rubydoc.info/github/rack/rack
151
150
  source_code_uri: https://github.com/rack/rack
152
- post_install_message:
153
151
  rdoc_options: []
154
152
  require_paths:
155
153
  - lib
@@ -164,8 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
162
  - !ruby/object:Gem::Version
165
163
  version: '0'
166
164
  requirements: []
167
- rubygems_version: 3.5.3
168
- signing_key:
165
+ rubygems_version: 3.6.2
169
166
  specification_version: 4
170
167
  summary: A modular Ruby webserver interface.
171
168
  test_files: []