{"id":"CVE-2017-3204","aliases":["DEBIAN-CVE-2017-3204","EUVD-2023-0819","GHSA-xhjq-w7xm-p8qj","GO-2020-0013","UBUNTU-CVE-2017-3204"],"status":"published","title":"golang.org/x/crypto/ssh Man-in-the-Middle attack","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","severity":{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.03156,"percentile":0.88049,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-310"],"published":"2017-04-04T14:00:00Z","modified":"2026-10-22T23:15:41Z","fixes":[{"ecosystem":"Go","package":"golang.org/x/crypto","fixed_in":["0.0.0-20170330155735-e4e2799dd7aa"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"golang-go.crypto","fixed_in":["1:0.0~git20170407.0.55a552f+REALLY.0.0~git20161012.0.5f31782-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"golang-go.crypto","fixed_in":["1:0.0~git20170407.0.55a552f+REALLY.0.0~git20161012.0.5f31782-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"golang-go.crypto","fixed_in":["1:0.0~git20170407.0.55a552f+REALLY.0.0~git20161012.0.5f31782-1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Go","package":"golang.org/x/crypto","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.0.0-20170330155735-e4e2799dd7aa"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"golang-go.crypto","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:0.0~git20170407.0.55a552f+REALLY.0.0~git20161012.0.5f31782-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"golang-go.crypto","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:0.0~git20170407.0.55a552f+REALLY.0.0~git20161012.0.5f31782-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"golang-go.crypto","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1:0.0~git20170407.0.55a552f+REALLY.0.0~git20161012.0.5f31782-1"}]}]},{"source":"osv","ecosystem":"Go","package":"golang.org/x/crypto","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.0.0-20170330155735-e4e2799dd7aa"}]}]},{"source":"osv","ecosystem":"Go","package":"golang.org/x/crypto","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.0.0-20170330155735-e4e2799dd7aa"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"golang-go.crypto","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1:0.0~git20150608-1","1:0.0~git20151201.0.7b85b09-2","1:0.0~git20151201.0.7b85b09-2ubuntu0.1~esm1","1:0.0~git20151201.0.7b85b09-2ubuntu0.1~esm2","1:0.0~git20151201.0.7b85b09-2ubuntu0.1~esm3"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.9","1.9.1.1","1.9.2","2.0","2.0.1","2.0.2","2.0.3","2.0.5","2.0.8","2.0.9","2.0.10","2.11+0.16.04","2.12+0.16.04","2.13","2.14.2~16.04","2.15.2ubuntu1","2.16ubuntu3","2.17.1ubuntu1","2.20.1ubuntu1","2.21","2.22.2","2.22.3","2.22.6","2.23.1","2.24.1","2.25","2.26.10","2.27.5","2.28.5","2.29.4.2","2.32.3.2","2.32.9","2.33.1ubuntu2","2.34.2","2.34.2ubuntu0.1","2.37.4","2.37.4ubuntu0.1","2.38","2.39.2","2.39.2ubuntu0.2","2.40","2.42.1","2.45.1","2.45.1ubuntu0.2","2.46.1","2.47.1","2.48","2.48.3","2.54.3+16.04~esm2","2.54.3+16.04.0ubuntu0.1~esm3","2.54.3+16.04.0ubuntu0.1~esm4","2.54.3+16.04.0ubuntu0.1~esm5","2.54.3+16.04.0ubuntu0.1~esm6","2.61.4ubuntu0.16.04.1+esm1","2.61.4ubuntu0.16.04.1+esm2","2.61.4ubuntu0.16.04.1+esm4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.28.5+17.10","2.29.4.1+18.04","2.29.4.2+18.04","2.31.1+18.04","2.32+18.04~pre5","2.32+18.04~pre6","2.32+18.04","2.32.3.2+18.04","2.32.5+18.04","2.32.8+18.04","2.32.9+18.04","2.33.1+18.04ubuntu2","2.34.2+18.04","2.34.2+18.04.1","2.37.1+18.04","2.37.1.1+18.04","2.37.4+18.04","2.37.4+18.04.1","2.38+18.04","2.39.2+18.04","2.40+18.04","2.42.1+18.04","2.45.1+18.04","2.45.1+18.04.2","2.46.1+18.04","2.47.1+18.04","2.48+18.04","2.48.3+18.04","2.49.2+18.04","2.51.1+18.04","2.54.2+18.04ubuntu1","2.54.3+18.04","2.54.3+18.04.2ubuntu0.1","2.54.3+18.04.2ubuntu0.2","2.55.5+18.04","2.57.5+18.04","2.57.5+18.04ubuntu0.1","2.58+18.04","2.58+18.04.1","2.61.4ubuntu0.18.04.1+esm1","2.61.4ubuntu0.18.04.1+esm2","2.61.4ubuntu0.18.04.1+esm4"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.41+19.10.1","2.42.1+20.04","2.43.3+git1.8109f8","2.44~pre1+20.04","2.44+20.04","2.44.2+20.04","2.44.3+20.04","2.45.1+20.04","2.45.1+20.04.2","2.46.1+20.04","2.47.1+20.04","2.48+20.04","2.48.3+20.04","2.49.2+20.04","2.51.1+20.04ubuntu2","2.54.2+20.04ubuntu2","2.54.3+20.04","2.54.3+20.04.1","2.54.3+20.04.1ubuntu0.1","2.54.3+20.04.1ubuntu0.2","2.54.3+20.04.1ubuntu0.3","2.55.5+20.04","2.57.5+20.04","2.57.5+20.04ubuntu0.1","2.58+20.04","2.58+20.04.1","2.61.3+20.04","2.62+20.04","2.63+20.04","2.63+20.04ubuntu0.1","2.65.3+20.04","2.66.1+20.04","2.67.1+20.04","2.67.1+20.04ubuntu1~esm1","2.67.1+20.04ubuntu1~esm3"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.53+21.10ubuntu1","2.54.2+22.04ubuntu1","2.54.2+22.04ubuntu2","2.54.2+22.04ubuntu3","2.54.3+git19.g868fc21+22.04","2.54.3+git26.g360067e+22.04","2.55.2+22.04","2.55.2+22.04.1","2.55.3+22.04","2.55.3+22.04ubuntu1","2.55.5+22.04","2.56.2+22.04ubuntu1","2.57.4+22.04","2.57.5+22.04","2.57.5+22.04ubuntu0.1","2.58+22.04","2.58+22.04.1","2.61.3+22.04","2.62+22.04","2.63+22.04","2.63+22.04ubuntu0.1","2.65.3+22.04","2.66.1+22.04","2.67.1+22.04","2.68.5+ubuntu22.04.1","2.71+ubuntu22.04","2.72+ubuntu22.04","2.73+ubuntu22.04","2.73+ubuntu22.04.1","2.74.1+ubuntu22.04.4","2.75.2+ubuntu22.04","2.76+ubuntu22.04","2.76+ubuntu22.04.1","2.76.3+ubuntu22.04","2.76.3+ubuntu22.04.1","2.77.1+ubuntu22.04.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.60.4+23.10","2.61.3+24.04","2.62+24.04build1","2.63+24.04","2.63+24.04ubuntu0.1","2.63.1+24.04","2.65.3+24.04","2.66.1+24.04","2.67.1+24.04","2.68.5+ubuntu24.04.1","2.71+ubuntu24.04","2.72+ubuntu24.04","2.73+ubuntu24.04","2.73+ubuntu24.04.1","2.73+ubuntu24.04.2","2.74.1+ubuntu24.04.4","2.75.2+ubuntu24.04","2.76+ubuntu24.04","2.76+ubuntu24.04.1","2.76.3+ubuntu24.04","2.77.1+ubuntu24.04"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.67.1+25.04","2.68.5+ubuntu25.10.2","2.71+ubuntu25.10","2.71.1+ubuntu25.10.1","2.72+ubuntu25.10.2","2.73+ubuntu25.10","2.73+ubuntu25.10.1","2.74.1+ubuntu25.10.4","2.75.2+ubuntu25.10"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.74.1+ubuntu26.04.4","2.76+ubuntu26.10.1","2.76+ubuntu26.10.2","2.76.3+ubuntu26.10","2.77.1+ubuntu26.10.1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"snapd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.71.1+ubuntu25.10.1","2.72+ubuntu26.04.1","2.73+ubuntu26.04.1","2.74+ubuntu26.04","2.74.1+ubuntu26.04","2.74.1+ubuntu26.04.3","2.74.1+ubuntu26.04.4","2.75.2+ubuntu26.04.2","2.76+ubuntu26.04.2","2.76+ubuntu26.04.3","2.76.3+ubuntu26.04","2.77.1+ubuntu26.04.2"]}],"products":[{"vendor":"go","product":"ssh library"},{"vendor":"golang","product":"crypto"}],"references":[{"url":"https://godoc.org/golang.org/x/crypto/ssh","tags":["x_refsource_MISC","x_transferred","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/golang/go/issues/19767","tags":["x_refsource_CONFIRM","x_transferred","Third Party Advisory","advisory","web"]},{"url":"https://bridge.grumpy-troll.org/2017/04/golang-ssh-security/","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","advisory","web","report"]},{"url":"https://github.com/golang/crypto/commit/e4e2799dd7aab89f583e1d898300d96367750991","tags":["x_refsource_CONFIRM","x_transferred","Patch","Third Party Advisory","fix","web"]},{"url":"http://www.securityfocus.com/bid/97481","tags":["vdb-entry","x_refsource_BID","x_transferred","Third Party Advisory","VDB Entry","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2017-3204","tags":["advisory"]},{"url":"https://go.dev/cl/340830","tags":["web"]},{"url":"https://go.dev/issue/19767","tags":["web","report"]},{"url":"https://go.googlesource.com/crypto/+/e4e2799dd7aab89f583e1d898300d96367750991","tags":["web","fix"]},{"url":"https://pkg.go.dev/vuln/GO-2020-0013","tags":["web"]},{"url":"https://web.archive.org/web/20170423080311/https://www.securityfocus.com/bid/97481","tags":["web"]},{"url":"https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-3204","tags":["web"]},{"url":"https://bridge.grumpy-troll.org/2017/04/golang-ssh-security","tags":["web"]},{"url":"https://go.dev/cl/38701","tags":["web","fix"]},{"url":"https://github.com/advisories/GHSA-xhjq-w7xm-p8qj"},{"url":"https://security-tracker.debian.org/tracker/CVE-2017-3204","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2017-3204","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2017-3204","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2017-3204","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2017-04-04T14:00:00Z","modified":"2024-08-05T14:16:28.305Z","cwes":["CWE-310"],"updated_at":"2026-11-02T14:33:16.232024Z"}],"euvd":[{"id":"EUVD-2023-0819","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2017-04-04T14:00:00Z","modified":"2024-08-05T14:16:28Z","updated_at":"2026-11-03T02:39:18.505086Z"}],"ghsa":[{"id":"GHSA-xhjq-w7xm-p8qj","title":"golang.org/x/crypto/ssh Man-in-the-Middle attack","description":"The Go SSH library (golang.org/x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks if ClientConfig.HostKeyCallback is not set. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2023-02-07T22:39:34Z","modified":"2024-04-19T21:43:22Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T14:37:43.62603Z"}],"nvd":[{"id":"CVE-2017-3204","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2017-04-04T14:59:00.18Z","modified":"2026-06-17T01:17:43.813Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"primary"},{"version":"2.0","score":6.8,"vector":"AV:N/AC:M/Au:N/C:P/I:P/A:P","level":"medium","assessor":"primary"}],"cwes":["CWE-310"],"updated_at":"2026-11-02T14:03:44.86906Z"}],"osv":[{"id":"CVE-2017-3204","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2017-04-04T14:59:00.18Z","modified":"2026-10-20T10:50:32.367399954Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:05.486486Z"},{"id":"DEBIAN-CVE-2017-3204","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2017-04-04T14:59:00.18Z","modified":"2026-09-01T20:03:48.036083365Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:29.100767Z"},{"id":"GHSA-xhjq-w7xm-p8qj","title":"golang.org/x/crypto/ssh Man-in-the-Middle attack","description":"The Go SSH library (golang.org/x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks if ClientConfig.HostKeyCallback is not set. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2023-02-07T22:39:34Z","modified":"2024-04-19T21:43:20Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:47:00.198893Z"},{"id":"UBUNTU-CVE-2017-3204","description":"The Go SSH library (x/crypto/ssh) by default does not verify host keys, facilitating man-in-the-middle attacks. Default behavior changed in commit e4e2799 to require explicitly registering a hostkey verification mechanism.","status":"published","published":"2017-04-04T14:59:00Z","modified":"2026-10-22T23:15:41.112294299Z","cvss":[{"version":"3.1","score":8.1,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:54:14.977781Z"},{"id":"GO-2020-0013","title":"Man-in-the-middle attack in golang.org/x/crypto/ssh","description":"By default host key verification is disabled which allows for man-in-the-middle attacks against SSH clients if ClientConfig.HostKeyCallback is not set.","status":"published","published":"2021-04-14T20:04:52Z","modified":"2024-05-20T16:03:47Z","updated_at":"2026-11-02T15:47:00.604718Z"}]}}
