rubygems-update 1.8.23.2 → 1.8.24

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

Potentially problematic release.


This version of rubygems-update might be problematic. Click here for more details.

@@ -1,22 +1,11 @@
1
1
  # coding: UTF-8
2
2
 
3
- === 1.8.23.2 / 2013-09-24
3
+ === 1.8.24 / 2012-04-27
4
4
 
5
- Security fixes:
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
- * RubyGems 2.0.7 and earlier are vulnerable to excessive CPU usage due to a
17
- backtracking in Gem::Version validation. See CVE-2013-4287 for full details
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
 
@@ -1,7 +1,5 @@
1
1
  .autotest
2
2
  .document
3
- CVE-2013-4287.txt
4
- CVE-2013-4363.txt
5
3
  History.txt
6
4
  LICENSE.txt
7
5
  MIT.txt
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"] + %w[
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"
@@ -121,7 +121,7 @@ require "rubygems/deprecate"
121
121
  # -The RubyGems Team
122
122
 
123
123
  module Gem
124
- VERSION = '1.8.23.2'
124
+ VERSION = '1.8.24'
125
125
 
126
126
  ##
127
127
  # Raised when RubyGems is unable to load or activate a gem. Contains the
@@ -209,7 +209,10 @@ TEXT
209
209
  say "Installing RubyGems" if @verbose
210
210
 
211
211
  Dir.chdir 'lib' do
212
- lib_files = Dir[File.join('**', '*rb')]
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
- connection.start unless connection.started?
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)
@@ -145,8 +145,8 @@ class Gem::Version
145
145
 
146
146
  include Comparable
147
147
 
148
- VERSION_PATTERN = '[0-9]+(?>\.[0-9a-zA-Z]+)*' # :nodoc:
149
- ANCHORED_VERSION_PATTERN = /\A\s*(#{VERSION_PATTERN})?\s*\z/ # :nodoc:
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
- assert_equal "Illformed requirement [#{bad.inspect}]", e.message
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
- %W[
68
- junk
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, bad
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
- version: 1.8.23.2
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
- -----BEGIN CERTIFICATE-----
15
- MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMRAwDgYDVQQDDAdkcmJy
16
- YWluMRgwFgYKCZImiZPyLGQBGRYIc2VnbWVudDcxEzARBgoJkiaJk/IsZAEZFgNu
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
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
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
- version: '4.0'
29
+ - !ruby/object:Gem::Version
30
+ hash: 21
31
+ segments:
32
+ - 2
33
+ - 11
34
+ version: "2.11"
58
35
  type: :development
59
- prerelease: false
60
- version_requirements: !ruby/object:Gem::Requirement
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
- version_requirements: !ruby/object:Gem::Requirement
75
- requirements:
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
- version: '1.2'
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
- version_requirements: !ruby/object:Gem::Requirement
89
- requirements:
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
90
58
  - - ~>
91
- - !ruby/object:Gem::Version
92
- version: '1.2'
93
- - !ruby/object:Gem::Dependency
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
- requirement: !ruby/object:Gem::Requirement
96
- requirements:
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
97
73
  - - ~>
98
- - !ruby/object:Gem::Version
99
- version: '2.4'
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
- version_requirements: !ruby/object:Gem::Requirement
103
- requirements:
85
+ requirement: &id005 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
104
88
  - - ~>
105
- - !ruby/object:Gem::Version
106
- version: '2.4'
107
- - !ruby/object:Gem::Dependency
108
- name: rcov
109
- requirement: !ruby/object:Gem::Requirement
110
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
117
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
131
- requirements:
116
+ requirement: &id007 !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
132
119
  - - ~>
133
- - !ruby/object:Gem::Version
134
- version: '4.5'
135
- - !ruby/object:Gem::Dependency
136
- name: hoe
137
- requirement: !ruby/object:Gem::Requirement
138
- requirements:
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
- version_requirements: !ruby/object:Gem::Requirement
145
- requirements:
131
+ requirement: &id008 !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
146
134
  - - ~>
147
- - !ruby/object:Gem::Version
148
- version: '3.7'
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
- extra_rdoc_files:
180
- - CVE-2013-4287.txt
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
- - MIT
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.23.2 Documentation
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
- requirements:
408
- - - '>='
409
- - !ruby/object:Gem::Version
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
- requirements:
413
- - - '>='
414
- - !ruby/object:Gem::Version
415
- version: '0'
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: 2.1.4
419
+ rubygems_version: 1.8.18
419
420
  signing_key:
420
- specification_version: 4
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
@@ -1,2 +0,0 @@
1
- j�C_1�  R|�A���3(h�@�d~|${�]"��yz�{zbJm��v�"�F4�7���y�Cn;jD�4B%�4��c��8�<1|�/A2,bi������~Hk��
2
- �����e
data.tar.gz.sig DELETED
Binary file
@@ -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
-
@@ -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