CVE-2013-4287 — rubygems-update
Fix: rubygems/rubygems@938a7e3CVE-2013-4287 is a CWE-310 vulnerability in rubygems-update. A fix is available for rubygems-update — see the affected versions and patch details below.
RubyGems Regular Expression Denial of Service vulnerability
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
Real-World Exposure
rubygems-update💎rubygems-update💎rubygems-update💎rubygems-updateReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects RubyGems packages — download data is not available via public APIs for these ecosystems.
Description
Algorithmic complexity vulnerability in Gem::Version::VERSION_PATTERN in lib/rubygems/version.rb in RubyGems before 1.8.23.1, 1.8.24 through 1.8.25, 2.0.x before 2.0.8, and 2.1.x before 2.1.0, as used in Ruby 1.9.0 through 2.0.0p247, allows remote attackers to cause a denial of service (CPU consumption) via a crafted gem version that triggers a large amount of backtracking in a regular expression.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 💎RubyGems | rubygems-update | all versions | 1.8.23.1bundle update rubygems-update --conservative |
| 💎RubyGems | rubygems-update | ≥ 1.8.24&&< 1.8.26 | 1.8.26bundle update rubygems-update --conservative |
| 💎RubyGems | rubygems-update | ≥ 2.0.0&&< 2.0.8 | 2.0.8bundle update rubygems-update --conservative |
| 💎RubyGems | rubygems-update | ≥ 2.1.0.rc.1&&< 2.1.0 | 2.1.0bundle update rubygems-update --conservative |
Affected Products
enterprise linuxredhatrubyruby-langrubygemsrubygemsDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for rubygems-update, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update rubygems-update to 1.8.23.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2013-4287 is resolved across your whole dependency graph.
Workarounds
Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.
Fixing This On Your OS
If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.
Red Hat OpenShift Enterprise 1.2 is now in Production 1 Phase of the support and maintenance life cycle. This has been rated as having Moderate security impact and is not currently planned to be addressed in future updates. For additional information, refer to the Red Hat OpenShift Enterprise Life…
Mitigation for this issue is either not available or the currently available options don't meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base, or stability.Source: Red Hat security advisory for CVE-2013-4287 (CC BY 4.0)
| Product | Fixed in | Advisory |
|---|---|---|
| OpenStack 3 for RHEL 6 | ruby193-ruby-0:1.9.3.448-40.el6 | RHSA-2013:1523 |
| Red Hat Enterprise Linux 6 | rubygems-0:1.3.7-4.el6_4 | RHSA-2013:1441 |
| Red Hat Enterprise MRG 2 | cumin-0:0.1.5787-4.el6 | RHSA-2013:1852 |
| Red Hat OpenShift Enterprise 2.0 | rubygems-0:1.8.24-5.el6op | RHSA-2014:0207 |
| Red Hat Software Collections for RHEL-6 | ruby193-ruby-0:1.9.3.448-40.el6 | RHSA-2013:1427 |
Frequently Asked Questions
Is CVE-2013-4287 in your dependencies?
Find it across RubyGems, including transitive dependencies.