{"api_version":"1","generated_at":"2026-07-23T19:55:42+00:00","cve":"CVE-2015-4020","urls":{"html":"https://cve.report/CVE-2015-4020","api":"https://cve.report/api/cve/CVE-2015-4020.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2015-4020","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2015-4020"},"summary":{"title":"CVE-2015-4020","description":"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.","state":"PUBLISHED","assigner":"mitre","published_at":"2015-08-25 17:59:01","updated_at":"2026-05-06 22:30:45"},"problem_types":["CWE-20","n/a"],"metrics":[{"version":"2.0","source":"nvd@nist.gov","type":"Primary","score":"4.3","severity":"","vector":"AV:N/AC:M/Au:N/C:N/I:P/A:N","data":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:N/I:P/A:N","baseScore":4.3,"accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"PARTIAL","availabilityImpact":"NONE"}}],"references":[{"url":"https://github.com/rubygems/rubygems/commit/5c7bfb5","name":"https://github.com/rubygems/rubygems/commit/5c7bfb5","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":[],"title":"Fix API endpoint domain clamping · rubygems/rubygems@5c7bfb5 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478","name":"https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Third Party Advisory"],"title":"","mime":"text/plain","httpstatus":"200","archivestatus":"200"},{"url":"http://blog.rubygems.org/2015/06/08/2.2.5-released.html","name":"http://blog.rubygems.org/2015/06/08/2.2.5-released.html","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Vendor Advisory"],"title":"2.2.5 Released | RubyGems.org","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://puppet.com/security/cve/CVE-2015-3900","name":"https://puppet.com/security/cve/CVE-2015-3900","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":[],"title":"CVE-2015-3900, CVE-2015-4020 - Request Hijacking Vulnerability in RubyGems  | Puppet","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html","name":"http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Third Party Advisory"],"title":"Oracle Solaris Third Party Bulletin - October 2015","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"http://www.securityfocus.com/bid/75431","name":"http://www.securityfocus.com/bid/75431","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":[],"title":"RubyGems CVE-2015-4020 Incomplete Fix Security Bypass Vulnerability","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"http://blog.rubygems.org/2015/06/08/2.4.8-released.html","name":"http://blog.rubygems.org/2015/06/08/2.4.8-released.html","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Vendor Advisory"],"title":"2.4.8 Released | RubyGems.org","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/","name":"https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/","refsource":"af854a3a-2127-422b-91ae-364da2661108","tags":["Third Party Advisory"],"title":"Attacking Ruby Gem Security with CVE-2015-3900","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2015-4020","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2015-4020","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"n/a","product":"n/a","version":"affected n/a","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"o","cpe4":"oracle","cpe5":"solaris","cpe6":"11.3","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.0","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.0","cpe7":"preview2","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.0","cpe7":"preview2.1","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.0","cpe7":"preview2.2","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.0","cpe7":"rc1","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.0","cpe7":"rc2","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.1","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.10","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.11","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.12","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.13","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.14","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.15","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.16","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.2","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.3","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.4","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.5","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.6","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.7","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.8","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.0.9","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.2.0","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.2.1","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.2.2","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.2.3","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.2.4","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.0","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.1","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.2","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.3","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.4","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.5","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.6","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2015","cve_id":"4020","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"rubygems","cpe5":"rubygems","cpe6":"2.4.7","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"providerMetadata":{"dateUpdated":"2024-08-06T06:04:02.680Z","orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE"},"references":[{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"http://blog.rubygems.org/2015/06/08/2.2.5-released.html"},{"tags":["x_refsource_MISC","x_transferred"],"url":"https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/"},{"name":"75431","tags":["vdb-entry","x_refsource_BID","x_transferred"],"url":"http://www.securityfocus.com/bid/75431"},{"tags":["x_refsource_MISC","x_transferred"],"url":"https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"http://blog.rubygems.org/2015/06/08/2.4.8-released.html"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"https://github.com/rubygems/rubygems/commit/5c7bfb5"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"https://puppet.com/security/cve/CVE-2015-3900"},{"tags":["x_refsource_CONFIRM","x_transferred"],"url":"http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html"}],"title":"CVE Program Container"}],"cna":{"affected":[{"product":"n/a","vendor":"n/a","versions":[{"status":"affected","version":"n/a"}]}],"datePublic":"2015-05-18T00:00:00.000Z","descriptions":[{"lang":"en","value":"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."}],"problemTypes":[{"descriptions":[{"description":"n/a","lang":"en","type":"text"}]}],"providerMetadata":{"dateUpdated":"2017-12-08T10:57:01.000Z","orgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","shortName":"mitre"},"references":[{"tags":["x_refsource_CONFIRM"],"url":"http://blog.rubygems.org/2015/06/08/2.2.5-released.html"},{"tags":["x_refsource_MISC"],"url":"https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/"},{"name":"75431","tags":["vdb-entry","x_refsource_BID"],"url":"http://www.securityfocus.com/bid/75431"},{"tags":["x_refsource_MISC"],"url":"https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478"},{"tags":["x_refsource_CONFIRM"],"url":"http://blog.rubygems.org/2015/06/08/2.4.8-released.html"},{"tags":["x_refsource_CONFIRM"],"url":"https://github.com/rubygems/rubygems/commit/5c7bfb5"},{"tags":["x_refsource_CONFIRM"],"url":"https://puppet.com/security/cve/CVE-2015-3900"},{"tags":["x_refsource_CONFIRM"],"url":"http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html"}],"x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2015-4020","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"n/a","version":{"version_data":[{"version_value":"n/a"}]}}]},"vendor_name":"n/a"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"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."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"name":"http://blog.rubygems.org/2015/06/08/2.2.5-released.html","refsource":"CONFIRM","url":"http://blog.rubygems.org/2015/06/08/2.2.5-released.html"},{"name":"https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/","refsource":"MISC","url":"https://www.trustwave.com/Resources/SpiderLabs-Blog/Attacking-Ruby-Gem-Security-with-CVE-2015-3900/"},{"name":"75431","refsource":"BID","url":"http://www.securityfocus.com/bid/75431"},{"name":"https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478","refsource":"MISC","url":"https://www.trustwave.com/Resources/Security-Advisories/Advisories/TWSL2015-009/?fid=6478"},{"name":"http://blog.rubygems.org/2015/06/08/2.4.8-released.html","refsource":"CONFIRM","url":"http://blog.rubygems.org/2015/06/08/2.4.8-released.html"},{"name":"https://github.com/rubygems/rubygems/commit/5c7bfb5","refsource":"CONFIRM","url":"https://github.com/rubygems/rubygems/commit/5c7bfb5"},{"name":"https://puppet.com/security/cve/CVE-2015-3900","refsource":"CONFIRM","url":"https://puppet.com/security/cve/CVE-2015-3900"},{"name":"http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html","refsource":"CONFIRM","url":"http://www.oracle.com/technetwork/topics/security/bulletinoct2015-2511968.html"}]}}}},"cveMetadata":{"assignerOrgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","assignerShortName":"mitre","cveId":"CVE-2015-4020","datePublished":"2015-08-25T17:00:00.000Z","dateReserved":"2015-05-18T00:00:00.000Z","dateUpdated":"2024-08-06T06:04:02.680Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.1"},"nvd":{"publishedDate":"2015-08-25 17:59:01","lastModifiedDate":"2026-05-06 22:30:45","problem_types":["CWE-20","n/a"],"metrics":{"cvssMetricV2":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"2.0","vectorString":"AV:N/AC:M/Au:N/C:N/I:P/A:N","baseScore":4.3,"accessVector":"NETWORK","accessComplexity":"MEDIUM","authentication":"NONE","confidentialityImpact":"NONE","integrityImpact":"PARTIAL","availabilityImpact":"NONE"},"baseSeverity":"MEDIUM","exploitabilityScore":8.6,"impactScore":2.9,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:oracle:solaris:11.3:*:*:*:*:*:*:*","matchCriteriaId":"79A602C5-61FE-47BA-9786-F045B6C6DBA8"}]}]},{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.0:*:*:*:*:*:*:*","matchCriteriaId":"F2D82506-3FB5-41BA-8704-CC324C0B0DB2"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.0:preview2:*:*:*:*:*:*","matchCriteriaId":"28EF4773-AA97-4209-951F-942286A92413"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.0:preview2.1:*:*:*:*:*:*","matchCriteriaId":"2A3D3005-679A-4761-AC38-CAE1C1CB20AC"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.0:preview2.2:*:*:*:*:*:*","matchCriteriaId":"344FF6A4-8041-4652-A0EA-F18BB0FCFB26"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.0:rc1:*:*:*:*:*:*","matchCriteriaId":"E6CC620F-8E83-4256-9872-CCCDF5A4ED35"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.0:rc2:*:*:*:*:*:*","matchCriteriaId":"F22B79F6-5CA1-4E5C-9223-345A39EDD507"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.1:*:*:*:*:*:*:*","matchCriteriaId":"260A155C-ED09-44E7-8279-5B94A4AC8CA4"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.2:*:*:*:*:*:*:*","matchCriteriaId":"C4E0506F-F2E6-45A2-B637-576C341A71B7"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.3:*:*:*:*:*:*:*","matchCriteriaId":"C2EC4513-B653-438A-A1E4-406D055FC160"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.4:*:*:*:*:*:*:*","matchCriteriaId":"F5FDF363-24FA-45D2-879B-B1CF9B667AE2"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.5:*:*:*:*:*:*:*","matchCriteriaId":"03A81F55-2B6B-467C-9281-AA11ED31220F"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.6:*:*:*:*:*:*:*","matchCriteriaId":"A8143D88-890D-4C87-9120-46B33D7D63C8"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.7:*:*:*:*:*:*:*","matchCriteriaId":"3E5608F5-AC8A-4368-9323-A2CC09F18AAD"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.8:*:*:*:*:*:*:*","matchCriteriaId":"0ACEEB4D-D21D-4D89-881A-9FC33121F69C"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.9:*:*:*:*:*:*:*","matchCriteriaId":"BE3D1495-E577-492F-ADE1-B8E8FB7F241A"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.10:*:*:*:*:*:*:*","matchCriteriaId":"BCD623FF-E72B-4C63-B9E6-AFCDEFDD760A"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.11:*:*:*:*:*:*:*","matchCriteriaId":"EAA1E4C2-29CA-48C2-AFFA-5357B36655FB"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.12:*:*:*:*:*:*:*","matchCriteriaId":"EB358B7A-D258-4B86-BBD9-09388109653A"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.13:*:*:*:*:*:*:*","matchCriteriaId":"5C608597-03F7-4F01-803F-0E2B1E9E1D30"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.14:*:*:*:*:*:*:*","matchCriteriaId":"67C95ABA-1949-4B56-B9E3-44B4AF90274D"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.15:*:*:*:*:*:*:*","matchCriteriaId":"DD319AE0-3D8C-40DF-857D-C38EAFA88C68"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.0.16:*:*:*:*:*:*:*","matchCriteriaId":"34709EF4-D695-4184-816A-F51FD9DF8AE6"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.2.0:*:*:*:*:*:*:*","matchCriteriaId":"672CC7FA-188C-4F34-B10D-7E0C4E7857F4"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.2.1:*:*:*:*:*:*:*","matchCriteriaId":"FFCFF897-E65B-4D58-BA4D-B08FEF1201B6"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.2.2:*:*:*:*:*:*:*","matchCriteriaId":"1B6D0730-F774-4E29-9871-3FF4BA89981E"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.2.3:*:*:*:*:*:*:*","matchCriteriaId":"2D692C10-A24E-48EA-887C-7333C772744C"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.2.4:*:*:*:*:*:*:*","matchCriteriaId":"DCDB36D4-FB34-4FAB-8549-AF7D5244CCD4"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.0:*:*:*:*:*:*:*","matchCriteriaId":"5AFD153C-B0C3-4A91-8B09-839341FA4434"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.1:*:*:*:*:*:*:*","matchCriteriaId":"04D0BF47-C818-4834-BFA2-23DD25386CCC"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.2:*:*:*:*:*:*:*","matchCriteriaId":"7F54C49A-12CE-4AC5-A94A-9C5921414AC6"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.3:*:*:*:*:*:*:*","matchCriteriaId":"9CFF3F39-EF40-4D73-965F-98A51C39C02F"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.4:*:*:*:*:*:*:*","matchCriteriaId":"35BCB8FC-EE9C-4AA4-A4A0-E20A3E557129"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.5:*:*:*:*:*:*:*","matchCriteriaId":"A5B90365-2172-43E3-870B-A16F9FB45FD8"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.6:*:*:*:*:*:*:*","matchCriteriaId":"D4932202-9EEA-4B95-A24A-637678837179"},{"vulnerable":true,"criteria":"cpe:2.3:a:rubygems:rubygems:2.4.7:*:*:*:*:*:*:*","matchCriteriaId":"EE86B4DE-776B-460F-B5C3-02C691243820"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2015","CveId":"4020","Ordinal":"1","Title":"CVE-2015-4020","CVE":"CVE-2015-4020","Year":"2015"},"notes":[{"CveYear":"2015","CveId":"4020","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"CVE-2015-4020"},{"CveYear":"2015","CveId":"4020","Ordinal":"2","NoteData":"2015-08-25","Type":"Other","Title":"Published"},{"CveYear":"2015","CveId":"4020","Ordinal":"3","NoteData":"2017-12-08","Type":"Other","Title":"Modified"}]}}}