rack 2.2.23 → 2.2.24
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/rack/multipart/parser.rb +11 -4
- 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: 5905364bd5b40d622e2e10330911370ec92f23e5afa1aa58283c2f0cf9a5782d
|
|
4
|
+
data.tar.gz: '09c4da33251a32194f0a656767150eaa17367f8e42ee45735971e963d0e43991'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5ee4b678c01a6bb97074b87886498d8aa3bce9b61322cb95cc7908dec5e751fdfb8b238bc98956719505b394de21d1f6787d2593378b1fee4a6fe10b9aea3d5b
|
|
7
|
+
data.tar.gz: 032c32c7ebb220355578577fce8ad49c67f869b0ba60e533c3e1178b3265086d50e34de0912f00dc9bfdfb4042d446bc2b1ac8bc62916835521b4cf3786de341
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
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.24] - 2026-08-13
|
|
6
|
+
|
|
7
|
+
### Security
|
|
8
|
+
|
|
9
|
+
- [CVE-2026-26962](https://github.com/advisories/GHSA-rx22-g9mx-qrhv) Improper unfolding of folded multipart headers preserves CRLF in parsed parameter values.
|
|
10
|
+
|
|
5
11
|
## [2.2.23] - 2026-04-01
|
|
6
12
|
|
|
7
13
|
### Security
|
|
@@ -24,6 +24,10 @@ module Rack
|
|
|
24
24
|
private_constant :BOUNDARY_START_LIMIT
|
|
25
25
|
|
|
26
26
|
MIME_HEADER_BYTESIZE_LIMIT = 64 * 1024
|
|
27
|
+
|
|
28
|
+
OBS_UNFOLD = /\r\n([ \t])/
|
|
29
|
+
|
|
30
|
+
private_constant :OBS_UNFOLD
|
|
27
31
|
private_constant :MIME_HEADER_BYTESIZE_LIMIT
|
|
28
32
|
|
|
29
33
|
env_int = lambda do |key, val|
|
|
@@ -310,14 +314,17 @@ module Rack
|
|
|
310
314
|
def handle_mime_head
|
|
311
315
|
if @sbuf.scan_until(@head_regex)
|
|
312
316
|
head = @sbuf[1]
|
|
313
|
-
|
|
314
|
-
|
|
317
|
+
# Implement OBS unfolding (RFC 5322 Section 2.2.3). Done on a copy
|
|
318
|
+
# because content type, disposition and filename are extracted by regex.
|
|
319
|
+
unfolded_head = head.gsub(OBS_UNFOLD, '\\1')
|
|
320
|
+
content_type = unfolded_head[MULTIPART_CONTENT_TYPE, 1]
|
|
321
|
+
if name = unfolded_head[MULTIPART_CONTENT_DISPOSITION, 1]
|
|
315
322
|
name = Rack::Auth::Digest::Params::dequote(name)
|
|
316
323
|
else
|
|
317
|
-
name =
|
|
324
|
+
name = unfolded_head[MULTIPART_CONTENT_ID, 1]
|
|
318
325
|
end
|
|
319
326
|
|
|
320
|
-
filename = get_filename(
|
|
327
|
+
filename = get_filename(unfolded_head)
|
|
321
328
|
|
|
322
329
|
if name.nil? || name.empty?
|
|
323
330
|
name = filename || "#{content_type || TEXT_PLAIN}[]".dup
|
data/lib/rack/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.24
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Leah Neukirchen
|
|
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
182
182
|
- !ruby/object:Gem::Version
|
|
183
183
|
version: '0'
|
|
184
184
|
requirements: []
|
|
185
|
-
rubygems_version: 4.0.
|
|
185
|
+
rubygems_version: 4.0.10
|
|
186
186
|
specification_version: 4
|
|
187
187
|
summary: A modular Ruby webserver interface.
|
|
188
188
|
test_files: []
|