CVE-2017-18365 in the critical feed json
The Management Console in GitHub Enterprise 2.8.x before 2.8.7 has a deserialization issue that allows unauthenticated remote attackers to…
published 2019-03-28 7 y ago modified 2026-06-17 4 mo ago also EUVD-2017-9483
- cvss
- 9.8
- version 3.0, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 21.2%
- EPSS 21.2% chance of exploitation in 30 days, percentile 97%
- public exploits
- 1
- Metasploit
Summary
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.
Patch / fix
- github github 2.8.7
Timeline
- First public exploit (Metasploit exploit/linux/http/github_enterprise_secret)
- Published
Exploit prediction
21.24% chance of exploitation in the next 30 days, higher than 97% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- Metasploit exploit/linux/http/github_enterprise_secret Github Enterprise Default Session Secret And Deserialization Vulnerability metasploit exploit, excellent rank, 2017-03-15
- exablue.de https://www.exablue.de/blog/2017-03-15-github-enterprise-remote-code-execution.html referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| NVD | 3.0 | 9.8 | CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 7.5 | AV:N/AC:L/Au:N/C:P/I:P/A:P |
Classification
- Weakness
-
- CWE-502 Deserialization of Untrusted Data
References
-
exablue.de
/blog/2017-03-15-github-enterprise-remote-code-execution.html
exploit, third-party-advisory
-
enterprise.github.com
/releases/2.8.7/notes
vendor-advisory
Sources
- CVE List CVE-2017-18365
- NVD CVE-2017-18365
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.