CVE-2019-8320 RubyGems Delete directory using symlink when decompressing tar
A malicious gem can delete arbitrary files on the user's machine via directory traversal, potentially causing data loss or system instability.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2019-8320?
CVE-2019-8320 is a high-severity path traversal vulnerability in n/a, published on 6 Jun 2019. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
A Directory Traversal issue was discovered in RubyGems 2.7.6 and later through 3.0.2. Before making new directories or touching files (which now include path-checking code for symlinks), it would delete the target destination. If that destination was hidden behind a symlink, a malicious gem could delete arbitrary files on the user's machine, presuming the attacker could guess at paths. Given how frequently gem is run as sudo, and how predictable paths are on modern systems (/tmp, /usr, etc.), this could likely lead to data loss or an unusable system.
Weakness: CWE-22
Which versions are affected by CVE-2019-8320?
4 open source packages ship an affected version, including rubygems-update. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
rubygems-update RubyGems | From 2.7.6 | 2.7.9 |
rubygems-update RubyGems | From 2.7.6 | 2.7.9 |
rubygems-update RubyGems | From 3.0.0 | 3.0.3 |
rubygems-update RubyGems | From 3.0.0 | 3.0.3 |
Products include Rubygems Rubygems.
How do I fix CVE-2019-8320?
Upgrade rubygems-update to a fixed version for your release line: 2.7.9 or 3.0.3.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2019-8320 being exploited?
There is no known exploitation of CVE-2019-8320 in the wild and no public exploit code.
Other vulnerabilities in n/a
- CVE-2022-36073 RubyGems allows creation of users with arbitrary unverified emails
- CVE-2018-1000074 RubyGems Deserialization of Untrusted Data vulnerability
- CVE-2018-1000073 RubyGems Link Following vulnerability
- CVE-2012-2125 RubyGems HTTPS to HTTP redirect
- CVE-2018-1000079 RubyGems Path Traversal vulnerability
Sources
Also known as ALPINE-CVE-2019-8320, DEBIAN-CVE-2019-8320, GHSA-5x32-c9mf-49cc, UBUNTU-CVE-2019-8320.