Cloudanix VulnDB

CVE-2017-0901

High · 7.5

CVSS

7.5

EPSS

29.4%

Published

Aug 31, 2017

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in Ruby's package manager lets specially crafted software packages replace important files on a computer when they are installed, potentially damaging or taking over systems.

Exploit Available
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Data Tampering
Component
Library
Class
Improper Input Validation
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

RubyGems fails to validate specification names in gem metadata, permitting path traversal that allows a crafted gem to write files to arbitrary filesystem locations during installation.

Why it matters to the business

Successful exploitation can corrupt or replace critical system and application files, causing service outages, data loss, or full host compromise in Ruby development, CI/CD, and production environments; the nine-year-old issue still affects any unpatched legacy RubyGems deployments that continue to consume gems from public sources.

How an attack unfolds

An attacker builds a gem whose specification contains malicious file names with path traversal sequences, publishes or hosts the gem on a repository reachable by the victim, and waits for the victim to run gem install; during installation the vulnerable RubyGems code writes the embedded files to unintended absolute paths, overwriting target files.

How to fix it

Upgrade RubyGems to the version containing commit ad5c0a53a86ca5b218c7976765c0365b91d22cb2 or any later release; enforce use of signed gems and restrict installation to trusted internal repositories.

How to confirm the fix worked

Verify the installed RubyGems version reports a commit after ad5c0a53a86ca5b218c7976765c0365b91d22cb2; attempt installation of a test gem containing path-traversal file names and confirm no files are written outside the intended gem directory.

Typical attack path

  1. Create gem package containing specification with crafted file names using path traversal
  2. Upload gem to a public or compromised gem source
  3. Social-engineer or rely on automated dependency resolution to trigger gem install
  4. RubyGems processes the malicious specification and writes attacker-controlled content to arbitrary filesystem paths

How to detect it

Review gem installation logs for packages installed from untrusted sources, correlate with unexpected file modifications or permission changes in system directories around the same timestamps, and inspect historical package caches for gems whose metadata contains path traversal sequences.

What your security team should do

  • Immediately upgrade all RubyGems installations to a fixed version
  • Scan existing gem caches and lockfiles for packages with suspicious specification names
  • Add policy to require gem signature verification before installation
  • Monitor filesystem changes during gem operations on developer and build systems

The record

RubyGems version 2.6.12 and earlier fails to validate specification names, allowing a maliciously crafted gem to potentially overwrite any file on the filesystem.

Affected packages

Ecosystem Package Introduced Fixed
RubyGems rubygems-update 0 2.6.13
Alpine:v3.10 ruby 0 2.4.2-r0
Alpine:v3.11 ruby 0 2.4.2-r0
Alpine:v3.12 ruby 0 2.4.2-r0
Alpine:v3.13 ruby 0 2.4.2-r0
Alpine:v3.14 ruby 0 2.4.2-r0
Alpine:v3.15 ruby 0 2.4.2-r0
Alpine:v3.16 ruby 0 2.4.2-r0
Alpine:v3.17 ruby 0 2.4.2-r0
Alpine:v3.18 ruby 0 2.4.2-r0
Alpine:v3.19 ruby 0 2.4.2-r0
Alpine:v3.20 ruby 0 2.4.2-r0
Alpine:v3.21 ruby 0 2.4.2-r0
Alpine:v3.22 ruby 0 2.4.2-r0
Alpine:v3.3 ruby 0 2.2.8-r0
Alpine:v3.4 ruby 0 2.3.5-r0
Alpine:v3.5 ruby 0 2.3.5-r0
Alpine:v3.6 ruby 0 2.4.2-r0
Alpine:v3.7 ruby 0 2.4.2-r0
Alpine:v3.8 ruby 0 2.4.2-r0
Alpine:v3.9 ruby 0 2.4.2-r0
Debian:11 rubygems 0 3.2.0~rc.1-1
Debian:12 rubygems 0 3.2.0~rc.1-1
Debian:13 rubygems 0 3.2.0~rc.1-1
Debian:7 ruby1.9.1 0 1.9.3.194-8.1+deb7u6
Debian:7 rubygems 0 1.8.24-1+deb7u1
Debian:8 ruby2.1 0 2.1.5-2+deb8u4
Debian:9 ruby2.3 0 2.3.3-1+deb9u1
Mageia:5 ruby-RubyGems 0 2.1.11-5.2.mga5
Mageia:6 ruby-RubyGems 0 2.4.8-7.1.mga6
Red Hat:enterprise_linux:7::client ruby 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client ruby-debuginfo 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client ruby-devel 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client ruby-doc 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client ruby-irb 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client ruby-libs 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client ruby-tcltk 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-bigdecimal 0 0:1.2.0-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-io-console 0 0:0.4.2-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-json 0 0:1.7.7-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-minitest 0 0:4.3.2-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-psych 0 0:2.0.0-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-rake 0 0:0.9.6-33.el7_4
Red Hat:enterprise_linux:7::client rubygem-rdoc 0 0:4.0.0-33.el7_4
Red Hat:enterprise_linux:7::client rubygems 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::client rubygems-devel 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby-debuginfo 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby-devel 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby-doc 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby-irb 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby-libs 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode ruby-tcltk 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-bigdecimal 0 0:1.2.0-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-io-console 0 0:0.4.2-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-json 0 0:1.7.7-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-minitest 0 0:4.3.2-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-psych 0 0:2.0.0-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-rake 0 0:0.9.6-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygem-rdoc 0 0:4.0.0-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygems 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::computenode rubygems-devel 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::server ruby 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server ruby-debuginfo 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server ruby-devel 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server ruby-doc 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server ruby-irb 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server ruby-libs 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server ruby-tcltk 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-bigdecimal 0 0:1.2.0-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-io-console 0 0:0.4.2-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-json 0 0:1.7.7-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-minitest 0 0:4.3.2-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-psych 0 0:2.0.0-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-rake 0 0:0.9.6-33.el7_4
Red Hat:enterprise_linux:7::server rubygem-rdoc 0 0:4.0.0-33.el7_4
Red Hat:enterprise_linux:7::server rubygems 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::server rubygems-devel 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby-debuginfo 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby-devel 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby-doc 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby-irb 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby-libs 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation ruby-tcltk 0 0:2.0.0.648-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-bigdecimal 0 0:1.2.0-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-io-console 0 0:0.4.2-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-json 0 0:1.7.7-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-minitest 0 0:4.3.2-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-psych 0 0:2.0.0-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-rake 0 0:0.9.6-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygem-rdoc 0 0:4.0.0-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygems 0 0:2.0.14.1-33.el7_4
Red Hat:enterprise_linux:7::workstation rubygems-devel 0 0:2.0.14.1-33.el7_4
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby-debuginfo 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby-devel 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby-doc 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby-irb 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby-libs 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-ruby-tcltk 0 0:2.2.9-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-bigdecimal 0 0:1.2.6-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-io-console 0 0:0.4.3-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-json 0 0:1.8.1.1-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-minitest 0 0:5.4.3-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-power_assert 0 0:0.2.2-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-psych 0 0:2.0.8.1-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-rake 0 0:10.4.2-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-rdoc 0 0:4.2.0-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygem-test-unit 0 0:3.0.8-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygems 0 0:2.4.5.4-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby22-rubygems-devel 0 0:2.4.5.4-19.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby-debuginfo 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby-devel 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby-doc 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby-irb 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby-libs 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-ruby-tcltk 0 0:2.3.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-bigdecimal 0 0:1.2.8-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-did_you_mean 0 0:1.0.0-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-io-console 0 0:0.4.5-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-json 0 0:1.8.3.1-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-minitest 0 0:5.8.5-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-net-telnet 0 0:0.1.1-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-power_assert 0 0:0.2.6-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-psych 0 0:2.1.0.1-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-rake 0 0:10.4.2-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-rdoc 0 0:4.2.1-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygem-test-unit 0 0:3.1.5-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygems 0 0:2.5.2.2-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby23-rubygems-devel 0 0:2.5.2.2-67.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-ruby 0 0:2.4.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-ruby-debuginfo 0 0:2.4.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-ruby-devel 0 0:2.4.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-ruby-doc 0 0:2.4.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-ruby-irb 0 0:2.4.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-ruby-libs 0 0:2.4.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-bigdecimal 0 0:1.3.0-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-did_you_mean 0 0:1.1.0-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-io-console 0 0:0.4.6-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-json 0 0:2.0.4-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-minitest 0 0:5.10.1-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-net-telnet 0 0:0.1.1-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-openssl 0 0:2.0.5-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-power_assert 0 0:0.4.1-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-psych 0 0:2.2.2-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-rake 0 0:12.0.0-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-rdoc 0 0:5.0.0-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-test-unit 0 0:3.2.3-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygem-xmlrpc 0 0:0.2.1-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygems 0 0:2.6.14-86.el6
Red Hat:rhel_software_collections:3::el6 rh-ruby24-rubygems-devel 0 0:2.6.14-86.el6
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby-debuginfo 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby-devel 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby-doc 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby-irb 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby-libs 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-ruby-tcltk 0 0:2.2.9-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-bigdecimal 0 0:1.2.6-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-io-console 0 0:0.4.3-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-json 0 0:1.8.1.1-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-minitest 0 0:5.4.3-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-power_assert 0 0:0.2.2-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-psych 0 0:2.0.8.1-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-rake 0 0:10.4.2-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-rdoc 0 0:4.2.0-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygem-test-unit 0 0:3.0.8-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygems 0 0:2.4.5.4-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby22-rubygems-devel 0 0:2.4.5.4-19.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby-debuginfo 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby-devel 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby-doc 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby-irb 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby-libs 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-ruby-tcltk 0 0:2.3.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-bigdecimal 0 0:1.2.8-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-did_you_mean 0 0:1.0.0-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-io-console 0 0:0.4.5-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-json 0 0:1.8.3.1-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-minitest 0 0:5.8.5-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-net-telnet 0 0:0.1.1-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-power_assert 0 0:0.2.6-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-psych 0 0:2.1.0.1-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-rake 0 0:10.4.2-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-rdoc 0 0:4.2.1-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygem-test-unit 0 0:3.1.5-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygems 0 0:2.5.2.2-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby23-rubygems-devel 0 0:2.5.2.2-67.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-ruby 0 0:2.4.2-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-ruby-debuginfo 0 0:2.4.2-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-ruby-devel 0 0:2.4.2-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-ruby-doc 0 0:2.4.2-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-ruby-irb 0 0:2.4.2-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-ruby-libs 0 0:2.4.2-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-rubygem-bigdecimal 0 0:1.3.0-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-rubygem-did_you_mean 0 0:1.1.0-86.el7
Red Hat:rhel_software_collections:3::el7 rh-ruby24-rubygem-io-console 0 0:0.4.6-86.el7

Related vulnerabilities