Skip to content

GHSA-gx69-6cp4-hxrj CVE-2018-1000073

RubyGems Link Following vulnerability

High MavenRubyGems
Severity
7.5 / 10
High · CVSS 3.0
Exploit chance (EPSS)
4.91%
Chance of exploitation in the next 30 days. Higher than 92.10% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-59 Improper Link Resolution Before File Access ('Link Following')
Fix
Available
2 packages have a fixed version

Description

RubyGems version Ruby 2.2 series: 2.2.9 and earlier, Ruby 2.3 series: 2.3.6 and earlier, Ruby 2.4 series: 2.4.3 and earlier, Ruby 2.5 series: 2.5.0 and earlier, prior to trunk revision 62422 contains a Directory Traversal vulnerability in install_location function of package.rb that can result in path traversal when writing to a symlinked basedir outside of the root. This vulnerability appears to have been fixed in 2.7.6.

Affected versions

Maven

PackageVulnerableFixed in
org.jruby:jruby-stdlib
< 9.1.16.0
9.1.16.0

RubyGems

PackageVulnerableFixed in
rubygems-update
< 2.7.6
2.7.6

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

org.jruby:jruby-stdlib Maven → 9.1.16.0

maven
<dependency><groupId>org.jruby</groupId><artifactId>jruby-stdlib</artifactId><version>9.1.16.0</version></dependency>
gradle
implementation("org.jruby:jruby-stdlib:9.1.16.0")

rubygems-update RubyGems → 2.7.6

bundler
bundle update rubygems-update # Gemfile: gem "rubygems-update", ">= 2.7.6"

Severity breakdown

CVSS 3.0 7.5

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Weakness

CWE-59: Improper Link Resolution Before File Access ('Link Following')

The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

How to prevent it
  • Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system. Denying access to a file can prevent an attacker from replacing that file with a link to a sensitive file. Ensure good compartmentalization in the system to provide protected areas that can be trusted.

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-228f-g3h7-3fj3
RubyGems HTTPS to HTTP redirect
Medium Also affects rubygems-update
GHSA-5mgj-mvv8-46mw
RubyGems does not verify SSL certificate
Medium Also affects rubygems-update
GHSA-qv62-xfj6-32xm
RubyGems Improper Input Validation vulnerability
Medium Also affects rubygems-update
GHSA-9qvm-2vhf-q649
RubyGems Regular Expression Denial of Service
Medium Also affects rubygems-update
GHSA-8qxg-mff5-j3wc
RubyGems Path Traversal vulnerability
Medium Also affects org.jruby:jruby-stdlib
GHSA-wp3j-rvfp-624h
RubyGems vulnerable to DNS hijack attack
High Also affects rubygems-update
GHSA-9j7m-rjqx-48vh
RubyGems Regular Expression Denial of Service vulnerability
Medium Also affects rubygems-update
GHSA-p7f2-rr42-m9xm
RubyGems Improper Input Validation vulnerability
High Also affects rubygems-update
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor