rubygems-update 1.8.23.2 → 1.8.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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data/History.txt +4 -15
- data/Manifest.txt +0 -2
- data/Rakefile +1 -3
- data/lib/rubygems.rb +1 -1
- data/lib/rubygems/commands/setup_command.rb +4 -1
- data/lib/rubygems/remote_fetcher.rb +15 -4
- data/lib/rubygems/version.rb +2 -2
- data/test/rubygems/test_gem_requirement.rb +9 -11
- data/test/rubygems/test_gem_version.rb +3 -9
- metadata +153 -152
- checksums.yaml +0 -7
- checksums.yaml.gz.sig +0 -2
- data.tar.gz.sig +0 -0
- data/CVE-2013-4287.txt +0 -36
- data/CVE-2013-4363.txt +0 -45
- metadata.gz.sig +0 -0
data/History.txt
CHANGED
@@ -1,22 +1,11 @@
|
|
1
1
|
# coding: UTF-8
|
2
2
|
|
3
|
-
=== 1.8.
|
3
|
+
=== 1.8.24 / 2012-04-27
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
* RubyGems 2.1.4 and earlier are vulnerable to excessive CPU usage due to a
|
8
|
-
backtracking in Gem::Version validation. See CVE-2013-4363 for full details
|
9
|
-
including vulnerable APIs. Fixed versions include 2.1.5, 2.0.10, 1.8.27 and
|
10
|
-
1.8.23.2 (for Ruby 1.9.3).
|
11
|
-
|
12
|
-
=== 1.8.23.1 / 2013-09-09
|
13
|
-
|
14
|
-
Security fixes:
|
5
|
+
* 1 bug fix:
|
15
6
|
|
16
|
-
*
|
17
|
-
|
18
|
-
including vulnerable APIs. Fixed versions include 2.0.8, 1.8.26 and
|
19
|
-
1.8.23.1 (for Ruby 1.9.3). Issue #626 by Damir Sharipov.
|
7
|
+
* Install the .pem files properly. Fixes #320
|
8
|
+
* Remove OpenSSL dependency from the http code path
|
20
9
|
|
21
10
|
=== 1.8.23 / 2012-04-19
|
22
11
|
|
data/Manifest.txt
CHANGED
data/Rakefile
CHANGED
@@ -50,9 +50,7 @@ hoe = Hoe.spec 'rubygems-update' do
|
|
50
50
|
extra_dev_deps << ['rcov', '~> 0.9.0']
|
51
51
|
extra_dev_deps << ['ZenTest', '~> 4.5']
|
52
52
|
|
53
|
-
self.extra_rdoc_files = Dir["*.rdoc"]
|
54
|
-
CVE-2013-4287.txt
|
55
|
-
]
|
53
|
+
self.extra_rdoc_files = Dir["*.rdoc"]
|
56
54
|
|
57
55
|
spec_extras['rdoc_options'] = proc do |rdoc_options|
|
58
56
|
rdoc_options << "--title=RubyGems #{self.version} Documentation"
|
data/lib/rubygems.rb
CHANGED
@@ -209,7 +209,10 @@ TEXT
|
|
209
209
|
say "Installing RubyGems" if @verbose
|
210
210
|
|
211
211
|
Dir.chdir 'lib' do
|
212
|
-
lib_files =
|
212
|
+
lib_files = Dir[File.join('**', '*rb')]
|
213
|
+
|
214
|
+
# Be sure to include our SSL ca bundles
|
215
|
+
lib_files += Dir[File.join('**', '*pem')]
|
213
216
|
|
214
217
|
lib_files.each do |lib_file|
|
215
218
|
dest_file = File.join lib_dir, lib_file
|
@@ -321,13 +321,24 @@ class Gem::RemoteFetcher
|
|
321
321
|
|
322
322
|
if https?(uri) and !connection.started? then
|
323
323
|
configure_connection_for_https(connection)
|
324
|
-
end
|
325
324
|
|
326
|
-
|
325
|
+
# Don't refactor this with the else branch. We don't want the
|
326
|
+
# http-only code path to not depend on anything in OpenSSL.
|
327
|
+
#
|
328
|
+
begin
|
329
|
+
connection.start
|
330
|
+
rescue OpenSSL::SSL::SSLError, Errno::EHOSTDOWN => e
|
331
|
+
raise FetchError.new(e.message, uri)
|
332
|
+
end
|
333
|
+
else
|
334
|
+
begin
|
335
|
+
connection.start unless connection.started?
|
336
|
+
rescue Errno::EHOSTDOWN => e
|
337
|
+
raise FetchError.new(e.message, uri)
|
338
|
+
end
|
339
|
+
end
|
327
340
|
|
328
341
|
connection
|
329
|
-
rescue OpenSSL::SSL::SSLError, Errno::EHOSTDOWN => e
|
330
|
-
raise FetchError.new(e.message, uri)
|
331
342
|
end
|
332
343
|
|
333
344
|
def configure_connection_for_https(connection)
|
data/lib/rubygems/version.rb
CHANGED
@@ -145,8 +145,8 @@ class Gem::Version
|
|
145
145
|
|
146
146
|
include Comparable
|
147
147
|
|
148
|
-
VERSION_PATTERN = '[0-9]+(
|
149
|
-
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})
|
148
|
+
VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*' # :nodoc:
|
149
|
+
ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
|
150
150
|
|
151
151
|
##
|
152
152
|
# A string representation of this Version.
|
@@ -37,19 +37,17 @@ class TestGemRequirement < Gem::TestCase
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def test_parse_bad
|
40
|
-
|
41
|
-
nil
|
42
|
-
|
43
|
-
'! 1',
|
44
|
-
'= junk',
|
45
|
-
'1..2',
|
46
|
-
].each do |bad|
|
47
|
-
e = assert_raises ArgumentError do
|
48
|
-
Gem::Requirement.parse bad
|
49
|
-
end
|
40
|
+
e = assert_raises ArgumentError do
|
41
|
+
Gem::Requirement.parse nil
|
42
|
+
end
|
50
43
|
|
51
|
-
|
44
|
+
assert_equal 'Illformed requirement [nil]', e.message
|
45
|
+
|
46
|
+
e = assert_raises ArgumentError do
|
47
|
+
Gem::Requirement.parse ""
|
52
48
|
end
|
49
|
+
|
50
|
+
assert_equal 'Illformed requirement [""]', e.message
|
53
51
|
end
|
54
52
|
|
55
53
|
def test_prerelease_eh
|
@@ -64,18 +64,12 @@ class TestGemVersion < Gem::TestCase
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_initialize_bad
|
67
|
-
|
68
|
-
|
69
|
-
1.0\n2.0
|
70
|
-
1..2
|
71
|
-
1.2\ 3.4
|
72
|
-
1-2-3
|
73
|
-
].each do |bad|
|
74
|
-
e = assert_raises ArgumentError, bad do
|
67
|
+
["junk", "1.0\n2.0"].each do |bad|
|
68
|
+
e = assert_raises ArgumentError do
|
75
69
|
Gem::Version.new bad
|
76
70
|
end
|
77
71
|
|
78
|
-
assert_equal "Malformed version number string #{bad}", e.message
|
72
|
+
assert_equal "Malformed version number string #{bad}", e.message
|
79
73
|
end
|
80
74
|
end
|
81
75
|
|
metadata
CHANGED
@@ -1,184 +1,177 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 7
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 8
|
9
|
+
- 24
|
10
|
+
version: 1.8.24
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
12
|
+
authors:
|
7
13
|
- Jim Weirich
|
8
14
|
- Chad Fowler
|
9
15
|
- Eric Hodel
|
10
16
|
autorequire:
|
11
17
|
bindir: bin
|
12
|
-
cert_chain:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
ZXQwHhcNMTMwMjI4MDUyMjA4WhcNMTQwMjI4MDUyMjA4WjBBMRAwDgYDVQQDDAdk
|
18
|
-
cmJyYWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZ
|
19
|
-
FgNuZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbbgLrGLGIDE76
|
20
|
-
LV/cvxdEzCuYuS3oG9PrSZnuDweySUfdp/so0cDq+j8bqy6OzZSw07gdjwFMSd6J
|
21
|
-
U5ddZCVywn5nnAQ+Ui7jMW54CYt5/H6f2US6U0hQOjJR6cpfiymgxGdfyTiVcvTm
|
22
|
-
Gj/okWrQl0NjYOYBpDi+9PPmaH2RmLJu0dB/NylsDnW5j6yN1BEI8MfJRR+HRKZY
|
23
|
-
mUtgzBwF1V4KIZQ8EuL6I/nHVu07i6IkrpAgxpXUfdJQJi0oZAqXurAV3yTxkFwd
|
24
|
-
g62YrrW26mDe+pZBzR6bpLE+PmXCzz7UxUq3AE0gPHbiMXie3EFE0oxnsU3lIduh
|
25
|
-
sCANiQ8BAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
26
|
-
BBS5k4Z75VSpdM0AclG2UvzFA/VW5DAfBgNVHREEGDAWgRRkcmJyYWluQHNlZ21l
|
27
|
-
bnQ3Lm5ldDAfBgNVHRIEGDAWgRRkcmJyYWluQHNlZ21lbnQ3Lm5ldDANBgkqhkiG
|
28
|
-
9w0BAQUFAAOCAQEAOflo4Md5aJF//EetzXIGZ2EI5PzKWX/mMpp7cxFyDcVPtTv0
|
29
|
-
js/6zWrWSbd60W9Kn4ch3nYiATFKhisgeYotDDz2/pb/x1ivJn4vEvs9kYKVvbF8
|
30
|
-
V7MV/O5HDW8Q0pA1SljI6GzcOgejtUMxZCyyyDdbUpyAMdt9UpqTZkZ5z1sicgQk
|
31
|
-
5o2XJ+OhceOIUVqVh1r6DNY5tLVaGJabtBmJAYFVznDcHiSFybGKBa5n25Egql1t
|
32
|
-
KDyY1VIazVgoC8XvR4h/95/iScPiuglzA+DBG1hip1xScAtw05BrXyUNrc9CEMYU
|
33
|
-
wgF94UVoHRp6ywo8I7NP3HcwFQDFNEZPNGXsng==
|
34
|
-
-----END CERTIFICATE-----
|
35
|
-
date: 2013-09-24 00:00:00.000000000 Z
|
36
|
-
dependencies:
|
37
|
-
- !ruby/object:Gem::Dependency
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2012-04-27 00:00:00 Z
|
21
|
+
dependencies:
|
22
|
+
- !ruby/object:Gem::Dependency
|
38
23
|
name: minitest
|
39
|
-
requirement: !ruby/object:Gem::Requirement
|
40
|
-
requirements:
|
41
|
-
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '5.0'
|
44
|
-
type: :development
|
45
24
|
prerelease: false
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: '5.0'
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
|
-
name: rdoc
|
53
|
-
requirement: !ruby/object:Gem::Requirement
|
54
|
-
requirements:
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
55
28
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 21
|
31
|
+
segments:
|
32
|
+
- 2
|
33
|
+
- 11
|
34
|
+
version: "2.11"
|
58
35
|
type: :development
|
59
|
-
|
60
|
-
|
61
|
-
requirements:
|
62
|
-
- - ~>
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: '4.0'
|
65
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
66
38
|
name: builder
|
67
|
-
requirement: !ruby/object:Gem::Requirement
|
68
|
-
requirements:
|
69
|
-
- - ~>
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '2.1'
|
72
|
-
type: :development
|
73
39
|
prerelease: false
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '2.1'
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: hoe-seattlerb
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
-
requirements:
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
83
43
|
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 1
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 1
|
49
|
+
version: "2.1"
|
86
50
|
type: :development
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
53
|
+
name: hoe-seattlerb
|
87
54
|
prerelease: false
|
88
|
-
|
89
|
-
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
57
|
+
requirements:
|
90
58
|
- - ~>
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
|
93
|
-
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 11
|
61
|
+
segments:
|
62
|
+
- 1
|
63
|
+
- 2
|
64
|
+
version: "1.2"
|
65
|
+
type: :development
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
94
68
|
name: session
|
95
|
-
|
96
|
-
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
97
73
|
- - ~>
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 11
|
76
|
+
segments:
|
77
|
+
- 2
|
78
|
+
- 4
|
79
|
+
version: "2.4"
|
100
80
|
type: :development
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: rdoc
|
101
84
|
prerelease: false
|
102
|
-
|
103
|
-
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
104
88
|
- - ~>
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
- - ~>
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: 0.9.0
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 7
|
91
|
+
segments:
|
92
|
+
- 3
|
93
|
+
- 0
|
94
|
+
version: "3.0"
|
114
95
|
type: :development
|
96
|
+
version_requirements: *id005
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rcov
|
115
99
|
prerelease: false
|
116
|
-
|
117
|
-
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
118
103
|
- - ~>
|
119
|
-
- !ruby/object:Gem::Version
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 59
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
- 9
|
109
|
+
- 0
|
120
110
|
version: 0.9.0
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: ZenTest
|
123
|
-
requirement: !ruby/object:Gem::Requirement
|
124
|
-
requirements:
|
125
|
-
- - ~>
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: '4.5'
|
128
111
|
type: :development
|
112
|
+
version_requirements: *id006
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: ZenTest
|
129
115
|
prerelease: false
|
130
|
-
|
131
|
-
|
116
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
118
|
+
requirements:
|
132
119
|
- - ~>
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
- - ~>
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '3.7'
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
hash: 17
|
122
|
+
segments:
|
123
|
+
- 4
|
124
|
+
- 5
|
125
|
+
version: "4.5"
|
142
126
|
type: :development
|
127
|
+
version_requirements: *id007
|
128
|
+
- !ruby/object:Gem::Dependency
|
129
|
+
name: hoe
|
143
130
|
prerelease: false
|
144
|
-
|
145
|
-
|
131
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
146
134
|
- - ~>
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
hash: 31
|
137
|
+
segments:
|
138
|
+
- 2
|
139
|
+
- 14
|
140
|
+
version: "2.14"
|
141
|
+
type: :development
|
142
|
+
version_requirements: *id008
|
149
143
|
description: |-
|
150
144
|
RubyGems is a package management framework for Ruby.
|
151
|
-
|
145
|
+
|
152
146
|
This gem is an update for the RubyGems software. You must have an
|
153
147
|
installation of RubyGems before this update can be applied.
|
154
|
-
|
148
|
+
|
155
149
|
See Gem for information on RubyGems (or `ri Gem`)
|
156
|
-
|
150
|
+
|
157
151
|
To upgrade to the latest RubyGems, run:
|
158
|
-
|
152
|
+
|
159
153
|
$ gem update --system # you might need to be an administrator or root
|
160
|
-
|
154
|
+
|
161
155
|
See UPGRADING.rdoc for more details and alternative instructions.
|
162
|
-
|
156
|
+
|
163
157
|
-----
|
164
|
-
|
158
|
+
|
165
159
|
If you don't have RubyGems installed, your can still do it manually:
|
166
|
-
|
160
|
+
|
167
161
|
* Download from: https://rubygems.org/pages/download
|
168
162
|
* Unpack into a directory and cd there
|
169
163
|
* Install with: ruby setup.rb # you may need admin/root privilege
|
170
|
-
|
164
|
+
|
171
165
|
For more details and other options, see:
|
172
|
-
|
166
|
+
|
173
167
|
ruby setup.rb --help
|
174
|
-
email:
|
168
|
+
email:
|
175
169
|
- rubygems-developers@rubyforge.org
|
176
|
-
executables:
|
170
|
+
executables:
|
177
171
|
- update_rubygems
|
178
172
|
extensions: []
|
179
|
-
|
180
|
-
|
181
|
-
- CVE-2013-4363.txt
|
173
|
+
|
174
|
+
extra_rdoc_files:
|
182
175
|
- History.txt
|
183
176
|
- LICENSE.txt
|
184
177
|
- MIT.txt
|
@@ -186,11 +179,9 @@ extra_rdoc_files:
|
|
186
179
|
- README.rdoc
|
187
180
|
- UPGRADING.rdoc
|
188
181
|
- hide_lib_for_update/note.txt
|
189
|
-
files:
|
182
|
+
files:
|
190
183
|
- .autotest
|
191
184
|
- .document
|
192
|
-
- CVE-2013-4287.txt
|
193
|
-
- CVE-2013-4363.txt
|
194
185
|
- History.txt
|
195
186
|
- LICENSE.txt
|
196
187
|
- MIT.txt
|
@@ -393,33 +384,43 @@ files:
|
|
393
384
|
- util/CL2notes
|
394
385
|
- .gemtest
|
395
386
|
homepage: http://rubygems.org
|
396
|
-
licenses:
|
397
|
-
|
398
|
-
metadata: {}
|
387
|
+
licenses: []
|
388
|
+
|
399
389
|
post_install_message:
|
400
|
-
rdoc_options:
|
390
|
+
rdoc_options:
|
401
391
|
- --main
|
402
392
|
- README.rdoc
|
403
|
-
- --title=RubyGems 1.8.
|
404
|
-
require_paths:
|
393
|
+
- --title=RubyGems 1.8.24 Documentation
|
394
|
+
require_paths:
|
405
395
|
- hide_lib_for_update
|
406
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
407
|
-
|
408
|
-
|
409
|
-
|
396
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
397
|
+
none: false
|
398
|
+
requirements:
|
399
|
+
- - ">="
|
400
|
+
- !ruby/object:Gem::Version
|
401
|
+
hash: 57
|
402
|
+
segments:
|
403
|
+
- 1
|
404
|
+
- 8
|
405
|
+
- 7
|
410
406
|
version: 1.8.7
|
411
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
407
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
408
|
+
none: false
|
409
|
+
requirements:
|
410
|
+
- - ">="
|
411
|
+
- !ruby/object:Gem::Version
|
412
|
+
hash: 3
|
413
|
+
segments:
|
414
|
+
- 0
|
415
|
+
version: "0"
|
416
416
|
requirements: []
|
417
|
+
|
417
418
|
rubyforge_project: rubygems
|
418
|
-
rubygems_version:
|
419
|
+
rubygems_version: 1.8.18
|
419
420
|
signing_key:
|
420
|
-
specification_version:
|
421
|
+
specification_version: 3
|
421
422
|
summary: RubyGems is a package management framework for Ruby
|
422
|
-
test_files:
|
423
|
+
test_files:
|
423
424
|
- test/rubygems/test_config.rb
|
424
425
|
- test/rubygems/test_gem.rb
|
425
426
|
- test/rubygems/test_gem_builder.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 4485176fa4a497c3790dc6a32bd8e55bb2f77534
|
4
|
-
data.tar.gz: 6dc935f3b3e6ec40bb7200a3a3809395f2020e70
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: baf41d09f58583dc2e7576c16cca00a10831f12c446f570acec68cafcaedf15c202c208c65fdb20b0df28c9545189b4f78ddec0db24340bf05b2697db4eb5b38
|
7
|
-
data.tar.gz: c971a892d2221997ac3bb54f1ffc44a171c2c956605a9127acc99415890d30e390052f1fdd458ea016fd55499ad4309fc2b0f7093b9997c71232c3ba268b0cf4
|
checksums.yaml.gz.sig
DELETED
data.tar.gz.sig
DELETED
Binary file
|
data/CVE-2013-4287.txt
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
= Algorithmic complexity vulnerability in RubyGems 2.0.7 and older
|
2
|
-
|
3
|
-
RubyGems validates versions with a regular expression that is vulnerable to
|
4
|
-
denial of service due to a backtracking regular expression. For specially
|
5
|
-
crafted RubyGems versions attackers can cause denial of service through CPU
|
6
|
-
consumption.
|
7
|
-
|
8
|
-
RubyGems versions 2.0.7 and older, 2.1.0.rc.1 and 2.1.0.rc.2 are vulnerable.
|
9
|
-
|
10
|
-
Ruby versions 1.9.0 through 2.0.0p247 are vulnerable as they contain embedded
|
11
|
-
versions of RubyGems.
|
12
|
-
|
13
|
-
It does not appear to be possible to exploit this vulnerability by installing a
|
14
|
-
gem for RubyGems 1.8.x or 2.0.x. Vulnerable uses of RubyGems API include
|
15
|
-
packaging a gem (through `gem build`, Gem::Package or Gem::PackageTask),
|
16
|
-
sending user input to Gem::Version.new, Gem::Version.correct? or use of the
|
17
|
-
Gem::Version::VERSION_PATTERN or Gem::Version::ANCHORED_VERSION_PATTERN
|
18
|
-
constants.
|
19
|
-
|
20
|
-
Notably, users of bundler that install gems from git are vulnerable if a
|
21
|
-
malicious author changes the gemspec to an invalid version.
|
22
|
-
|
23
|
-
The vulnerability can be fixed by changing the first grouping to an atomic
|
24
|
-
grouping in Gem::Version::VERSION_PATTERN in lib/rubygems/version.rb. For
|
25
|
-
RubyGems 2.0.x:
|
26
|
-
|
27
|
-
- VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
|
28
|
-
+ VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?' # :nodoc:
|
29
|
-
|
30
|
-
For RubyGems 1.8.x:
|
31
|
-
|
32
|
-
- VERSION_PATTERN = '[0-9]+(\.[0-9a-zA-Z]+)*' # :nodoc:
|
33
|
-
+ VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*' # :nodoc:
|
34
|
-
|
35
|
-
This vulnerability was discovered by Damir Sharipov <dammer2k@gmail.com>
|
36
|
-
|
data/CVE-2013-4363.txt
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
= Algorithmic complexity vulnerability in RubyGems 2.1.4 and older
|
2
|
-
|
3
|
-
The patch for CVE-2013-4287 was insufficiently verified so the combined
|
4
|
-
regular expression for verifying gem version remains vulnerable following
|
5
|
-
CVE-2013-4287.
|
6
|
-
|
7
|
-
RubyGems validates versions with a regular expression that is vulnerable to
|
8
|
-
denial of service due to backtracking. For specially crafted RubyGems
|
9
|
-
versions attackers can cause denial of service through CPU consumption.
|
10
|
-
|
11
|
-
RubyGems versions 2.1.4 and older are vulnerable.
|
12
|
-
|
13
|
-
Ruby versions 1.9.0 through 2.0.0p247 are vulnerable as they contain embedded
|
14
|
-
versions of RubyGems.
|
15
|
-
|
16
|
-
It does not appear to be possible to exploit this vulnerability by installing a
|
17
|
-
gem for RubyGems 1.8.x or newer. Vulnerable uses of RubyGems API include
|
18
|
-
packaging a gem (through `gem build`, Gem::Package or Gem::PackageTask),
|
19
|
-
sending user input to Gem::Version.new, Gem::Version.correct? or use of the
|
20
|
-
Gem::Version::VERSION_PATTERN or Gem::Version::ANCHORED_VERSION_PATTERN
|
21
|
-
constants.
|
22
|
-
|
23
|
-
Notably, users of bundler that install gems from git are vulnerable if a
|
24
|
-
malicious author changes the gemspec to an invalid version.
|
25
|
-
|
26
|
-
The vulnerability can be fixed by changing the "*" repetition to a "?"
|
27
|
-
repetition in Gem::Version::ANCHORED_VERSION_PATTERN in
|
28
|
-
lib/rubygems/version.rb. For RubyGems 2.1.x:
|
29
|
-
|
30
|
-
- ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
|
31
|
-
+ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
|
32
|
-
|
33
|
-
For RubyGems 2.0.x:
|
34
|
-
|
35
|
-
- ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
|
36
|
-
+ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
|
37
|
-
|
38
|
-
For RubyGems 1.8.x:
|
39
|
-
|
40
|
-
- ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})*\s*\z/ # :nodoc:
|
41
|
-
+ ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
|
42
|
-
|
43
|
-
|
44
|
-
This vulnerability was discovered by Alexander Cherepanov <cherepan@mccme.ru>
|
45
|
-
|
metadata.gz.sig
DELETED
Binary file
|