{"api_version":"1","generated_at":"2026-07-23T10:57:58+00:00","cve":"CVE-2017-18365","urls":{"html":"https://cve.report/CVE-2017-18365","api":"https://cve.report/api/cve/CVE-2017-18365.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2017-18365","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2017-18365"},"summary":{"title":"CVE-2017-18365","description":"The Management Console in GitHub Enterprise 2.8.x before 2.8.7 has a deserialization issue that allows unauthenticated remote attackers to execute arbitrary code. This occurs because the enterprise session secret is always the same, and can be found in the product's source code. By sending a crafted cookie signed with this secret, one can call Marshal.load with arbitrary data, which is a problem because the Marshal data format allows Ruby objects.","state":"PUBLIC","assigner":"cve@mitre.org","published_at":"2019-03-28 06:29:00","updated_at":"2019-03-29 15:03:00"},"problem_types":["CWE-502"],"metrics":[],"references":[{"url":"https://www.exablue.de/blog/2017-03-15-github-enterprise-remote-code-execution.html","name":"https://www.exablue.de/blog/2017-03-15-github-enterprise-remote-code-execution.html","refsource":"MISC","tags":["Exploit","Third Party Advisory"],"title":"GitHub Enterprise Remote Code Execution","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://enterprise.github.com/releases/2.8.7/notes","name":"https://enterprise.github.com/releases/2.8.7/notes","refsource":"MISC","tags":["Vendor Advisory"],"title":"GitHub Enterprise - The best way to build and ship software","mime":"text/html","httpstatus":"200","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2017-18365","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-18365","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2017","cve_id":"18365","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"github","cpe5":"github","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"enterprise","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2017","cve_id":"18365","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"github","cpe5":"github","cpe6":"2.8.7","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2017","cve_id":"18365","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"github","cpe5":"github","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"enterprise","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2017","cve_id":"18365","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"github","cpe5":"github","cpe6":"2.8.7","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2017-18365","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":"The Management Console in GitHub Enterprise 2.8.x before 2.8.7 has a deserialization issue that allows unauthenticated remote attackers to execute arbitrary code. This occurs because the enterprise session secret is always the same, and can be found in the product's source code. By sending a crafted cookie signed with this secret, one can call Marshal.load with arbitrary data, which is a problem because the Marshal data format allows Ruby objects."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"url":"https://www.exablue.de/blog/2017-03-15-github-enterprise-remote-code-execution.html","refsource":"MISC","name":"https://www.exablue.de/blog/2017-03-15-github-enterprise-remote-code-execution.html"},{"url":"https://enterprise.github.com/releases/2.8.7/notes","refsource":"MISC","name":"https://enterprise.github.com/releases/2.8.7/notes"}]}},"nvd":{"publishedDate":"2019-03-28 06:29:00","lastModifiedDate":"2019-03-29 15:03:00","problem_types":["CWE-502"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.0","vectorString":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":9.8,"baseSeverity":"CRITICAL"},"exploitabilityScore":3.9,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":7.5},"severity":"HIGH","exploitabilityScore":10,"impactScore":6.4,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:github:github:*:*:*:*:enterprise:*:*:*","versionStartIncluding":"2.8.0","versionEndExcluding":"2.8.7","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:github:github:2.8.7:*:*:*:*:*:*:*","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2017","CveId":"18365","Ordinal":"148468","Title":"CVE-2017-18365","CVE":"CVE-2017-18365","Year":"2017"},"notes":[{"CveYear":"2017","CveId":"18365","Ordinal":"1","NoteData":"The Management Console in GitHub Enterprise 2.8.x before 2.8.7 has a deserialization issue that allows unauthenticated remote attackers to execute arbitrary code. This occurs because the enterprise session secret is always the same, and can be found in the product's source code. By sending a crafted cookie signed with this secret, one can call Marshal.load with arbitrary data, which is a problem because the Marshal data format allows Ruby objects.","Type":"Description","Title":null},{"CveYear":"2017","CveId":"18365","Ordinal":"2","NoteData":"2019-03-28","Type":"Other","Title":"Published"},{"CveYear":"2017","CveId":"18365","Ordinal":"3","NoteData":"2019-03-28","Type":"Other","Title":"Modified"}]}}}