RubyGems 2.0.x before 2.0.17, 2.2.x before 2.2.5, and 2.4.x before 2.4.8 does not…
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- — Not recorded in CVSS 2.0
- Attack complexity
- Medium
- Impact type
- —
- Confidentiality · integrity · availability
- None · Partial · None
- Fix status
- Fixed
Attack profile from CVSS 2.0 · NVD. Fix status from CNA and GitHub.
Summary
RubyGems 2.0.x before 2.0.17, 2.2.x before 2.2.5, and 2.4.x before 2.4.8 does not validate the hostname when fetching gems or making API requests, which allows remote attackers to redirect requests to arbitrary domains via a crafted DNS SRV record with a domain that is suffixed with the original domain name, aka a "DNS hijack attack." NOTE: this vulnerability exists because to an incomplete fix for CVE-2015-3900.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | rubygems-update (RubyGems) | before 2.0.17 | 2.0.17 | Patch available | GHSA-qv62-xfj6-32xm |
| — | rubygems-update (RubyGems) | 2.1.0.rc.1 to before 2.2.5 | 2.2.5 | Patch available | GHSA-qv62-xfj6-32xm |
| — | rubygems-update (RubyGems) | 2.3.0 to before 2.4.8 | 2.4.8 | Patch available | GHSA-qv62-xfj6-32xm |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- rubygems-update (RubyGems) Vendor— Affected before 2.0.17 Fixed in 2.0.17 Patch available GHSA-qv62-xfj6-32xm
- rubygems-update (RubyGems) Vendor— Affected 2.1.0.rc.1 to before 2.2.5 Fixed in 2.2.5 Patch available GHSA-qv62-xfj6-32xm
- rubygems-update (RubyGems) Vendor— Affected 2.3.0 to before 2.4.8 Fixed in 2.4.8 Patch available GHSA-qv62-xfj6-32xm
CPE configurations NVD · 36
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:o:oracle:solaris:11.3:*:*:*:*:*:*:* | 11.3 | Vulnerable | Oracle |
| cpe:2.3:a:rubygems:rubygems:2.0.0:*:*:*:*:*:*:* | 2.0.0 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.0:preview2:*:*:*:*:*:* | 2.0.0 preview2 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.0:preview2.1:*:*:*:*:*:* | 2.0.0 preview2.1 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.0:preview2.2:*:*:*:*:*:* | 2.0.0 preview2.2 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.0:rc1:*:*:*:*:*:* | 2.0.0 rc1 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.0:rc2:*:*:*:*:*:* | 2.0.0 rc2 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.1:*:*:*:*:*:*:* | 2.0.1 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.2:*:*:*:*:*:*:* | 2.0.2 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.3:*:*:*:*:*:*:* | 2.0.3 | Vulnerable | rubygems |
- cpe:2.3:o:oracle:solaris:11.3:*:*:*:*:*:*:* Versions 11.3 Vulnerable ·Oracle
- cpe:2.3:a:rubygems:rubygems:2.0.0:*:*:*:*:*:*:* Versions 2.0.0 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.0:preview2:*:*:*:*:*:* Versions 2.0.0 preview2 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.0:preview2.1:*:*:*:*:*:* Versions 2.0.0 preview2.1 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.0:preview2.2:*:*:*:*:*:* Versions 2.0.0 preview2.2 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.0:rc1:*:*:*:*:*:* Versions 2.0.0 rc1 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.0:rc2:*:*:*:*:*:* Versions 2.0.0 rc2 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.1:*:*:*:*:*:*:* Versions 2.0.1 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.2:*:*:*:*:*:*:* Versions 2.0.2 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.3:*:*:*:*:*:*:* Versions 2.0.3 Vulnerable ·rubygems
Show 26 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:rubygems:rubygems:2.0.4:*:*:*:*:*:*:* | 2.0.4 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.5:*:*:*:*:*:*:* | 2.0.5 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.6:*:*:*:*:*:*:* | 2.0.6 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.7:*:*:*:*:*:*:* | 2.0.7 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.8:*:*:*:*:*:*:* | 2.0.8 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.9:*:*:*:*:*:*:* | 2.0.9 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.10:*:*:*:*:*:*:* | 2.0.10 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.11:*:*:*:*:*:*:* | 2.0.11 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.12:*:*:*:*:*:*:* | 2.0.12 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.13:*:*:*:*:*:*:* | 2.0.13 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.14:*:*:*:*:*:*:* | 2.0.14 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.15:*:*:*:*:*:*:* | 2.0.15 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.0.16:*:*:*:*:*:*:* | 2.0.16 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.2.0:*:*:*:*:*:*:* | 2.2.0 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.2.1:*:*:*:*:*:*:* | 2.2.1 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.2.2:*:*:*:*:*:*:* | 2.2.2 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.2.3:*:*:*:*:*:*:* | 2.2.3 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.2.4:*:*:*:*:*:*:* | 2.2.4 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.0:*:*:*:*:*:*:* | 2.4.0 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.1:*:*:*:*:*:*:* | 2.4.1 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.2:*:*:*:*:*:*:* | 2.4.2 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.3:*:*:*:*:*:*:* | 2.4.3 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.4:*:*:*:*:*:*:* | 2.4.4 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.5:*:*:*:*:*:*:* | 2.4.5 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.6:*:*:*:*:*:*:* | 2.4.6 | Vulnerable | rubygems |
| cpe:2.3:a:rubygems:rubygems:2.4.7:*:*:*:*:*:*:* | 2.4.7 | Vulnerable | rubygems |
- cpe:2.3:a:rubygems:rubygems:2.0.4:*:*:*:*:*:*:* Versions 2.0.4 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.5:*:*:*:*:*:*:* Versions 2.0.5 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.6:*:*:*:*:*:*:* Versions 2.0.6 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.7:*:*:*:*:*:*:* Versions 2.0.7 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.8:*:*:*:*:*:*:* Versions 2.0.8 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.9:*:*:*:*:*:*:* Versions 2.0.9 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.10:*:*:*:*:*:*:* Versions 2.0.10 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.11:*:*:*:*:*:*:* Versions 2.0.11 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.12:*:*:*:*:*:*:* Versions 2.0.12 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.13:*:*:*:*:*:*:* Versions 2.0.13 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.14:*:*:*:*:*:*:* Versions 2.0.14 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.15:*:*:*:*:*:*:* Versions 2.0.15 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.0.16:*:*:*:*:*:*:* Versions 2.0.16 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.2.0:*:*:*:*:*:*:* Versions 2.2.0 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.2.1:*:*:*:*:*:*:* Versions 2.2.1 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.2.2:*:*:*:*:*:*:* Versions 2.2.2 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.2.3:*:*:*:*:*:*:* Versions 2.2.3 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.2.4:*:*:*:*:*:*:* Versions 2.2.4 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.0:*:*:*:*:*:*:* Versions 2.4.0 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.1:*:*:*:*:*:*:* Versions 2.4.1 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.2:*:*:*:*:*:*:* Versions 2.4.2 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.3:*:*:*:*:*:*:* Versions 2.4.3 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.4:*:*:*:*:*:*:* Versions 2.4.4 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.5:*:*:*:*:*:*:* Versions 2.4.5 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.6:*:*:*:*:*:*:* Versions 2.4.6 Vulnerable ·rubygems
- cpe:2.3:a:rubygems:rubygems:2.4.7:*:*:*:*:*:*:* Versions 2.4.7 Vulnerable ·rubygems
Remediation
- Fix · GHSA-qv62-xfj6-32xm rubygems-update (RubyGems) Fixed in 2.0.17 Advisory →
- Fix · GHSA-qv62-xfj6-32xm rubygems-update (RubyGems) Fixed in 2.2.5 Advisory →
- Fix · GHSA-qv62-xfj6-32xm rubygems-update (RubyGems) Fixed in 2.4.8 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
Not affected: 11 products
- CloudForms Management Engine 5
- OpenStack Foreman
- Red Hat Enterprise Linux 5
- Red Hat Enterprise Linux 6
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux OpenStack Platform 5 (Icehouse)
- Red Hat Enterprise MRG 2
- Red Hat OpenShift Enterprise 2
- Red Hat Satellite 6
- Red Hat Software Collections
- Red Hat Subscription Asset Manager
Timeline
- 2026-10-02 Threatist record created from CVE-2015-4020
- 2026-10-03 Alias added: GHSA-qv62-xfj6-32xm
References
Advisory 6
- http://blog.rubygems.org/2015/06/08/2.2.5-released.html
- https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/
- https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478
- http://blog.rubygems.org/2015/06/08/2.4.8-released.html
- http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html
- https://nvd.nist.gov/vuln/detail/CVE-2015-4020
Other 7
- https://github.com/rubygems/rubygems/commit/5c7bfb5
- https://puppet.com/security/cve/CVE-2015-3900
- https://github.com/rubygems/rubygems
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/rubygems-update/CVE-2015-4020.yml
- https://web.archive.org/web/20200228084212/http://www.securityfocus.com/bid/75431
- https://web.archive.org/web/20200228085830/https://puppet.com/security/cve/CVE-2015-3900
- https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900
Sources
- CVE-2015-4020 · CVE Program
- CVE-2015-4020 · NVD
- FIRST EPSS
- GHSA-qv62-xfj6-32xm · GitHub Advisory Database · CC BY 4.0
- CVE-2015-4020 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences