{"id":"CVE-2016-10931","aliases":["EUVD-2021-1528","GHSA-34p9-f4q3-c4r7","RUSTSEC-2016-0001"],"status":"published","title":"Improper Certificate Validation in openssl","description":"An issue was discovered in the openssl crate before 0.9.0 for Rust. There is an SSL/TLS man-in-the-middle vulnerability because certificate verification is off by default and there is no API for hostname verification.","severity":{"version":"3.0","score":8.1,"vector":"CVSS:3.0/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-09","score":0.00745,"percentile":0.55049,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-295"],"published":"2016-11-05T12:00:00Z","modified":"2026-10-24T10:30:53Z","fixes":[{"ecosystem":"crates.io","package":"openssl","fixed_in":["0.9.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"openssl","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.9.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"openssl","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.9.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"openssl","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.9.0"}]}]}],"products":[{"vendor":"rust-openssl_project","product":"rust-openssl"}],"references":[{"url":"https://rustsec.org/advisories/RUSTSEC-2016-0001.html","tags":["x_refsource_MISC","x_transferred","Release Notes","Vendor Advisory","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2016-10931","tags":["advisory"]},{"url":"https://github.com/sfackler/rust-openssl/releases/tag/v0.9.0","tags":["web"]},{"url":"https://github.com/advisories/GHSA-34p9-f4q3-c4r7"},{"url":"https://github.com/sfackler/rust-openssl","tags":["package"]},{"url":"https://crates.io/crates/openssl","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2016-10931","description":"An issue was discovered in the openssl crate before 0.9.0 for Rust. There is an SSL/TLS man-in-the-middle vulnerability because certificate verification is off by default and there is no API for hostname verification.","status":"published","published":"2019-08-26T12:00:16Z","modified":"2024-08-06T03:38:56.676Z","updated_at":"2026-11-02T14:33:31.117878Z"}],"euvd":[{"id":"EUVD-2021-1528","description":"An issue was discovered in the openssl crate before 0.9.0 for Rust. There is an SSL/TLS man-in-the-middle vulnerability because certificate verification is off by default and there is no API for hostname verification.","status":"published","published":"2019-08-26T12:00:16Z","modified":"2024-08-06T03:38:56Z","updated_at":"2026-11-03T02:22:22.621497Z"}],"ghsa":[{"id":"GHSA-34p9-f4q3-c4r7","title":"Improper Certificate Validation in openssl","description":"All versions of rust-openssl prior to 0.9.0 contained numerous insecure defaults including off-by-default certificate verification and no API to perform hostname verification. Unless configured correctly by a developer, these defaults could allow an attacker to perform man-in-the-middle attacks. The problem was addressed in newer versions by enabling certificate verification by default and exposing APIs to perform hostname verification. Use the SslConnector and SslAcceptor types to take advantage of these new features (as opposed to the lower-level SslContext type).","status":"published","published":"2021-08-25T20:43:11Z","modified":"2023-06-13T20:14:10Z","cvss":[{"version":"3.0","score":8.1,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T14:36:54.225318Z"}],"nvd":[{"id":"CVE-2016-10931","description":"An issue was discovered in the openssl crate before 0.9.0 for Rust. There is an SSL/TLS man-in-the-middle vulnerability because certificate verification is off by default and there is no API for hostname verification.","status":"published","published":"2019-08-26T12:15:11.327Z","modified":"2026-06-17T00:40:38.78Z","cvss":[{"version":"3.0","score":8.1,"vector":"CVSS:3.0/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-295"],"updated_at":"2026-11-02T14:03:40.524348Z"}],"osv":[{"id":"CVE-2016-10931","description":"An issue was discovered in the openssl crate before 0.9.0 for Rust. There is an SSL/TLS man-in-the-middle vulnerability because certificate verification is off by default and there is no API for hostname verification.","status":"published","published":"2019-08-26T12:15:11.327Z","modified":"2026-10-24T10:30:53.846223767Z","cvss":[{"version":"3.0","score":8.1,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:44:01.531338Z"},{"id":"GHSA-34p9-f4q3-c4r7","title":"Improper Certificate Validation in openssl","description":"All versions of rust-openssl prior to 0.9.0 contained numerous insecure defaults including off-by-default certificate verification and no API to perform hostname verification. Unless configured correctly by a developer, these defaults could allow an attacker to perform man-in-the-middle attacks. The problem was addressed in newer versions by enabling certificate verification by default and exposing APIs to perform hostname verification. Use the SslConnector and SslAcceptor types to take advantage of these new features (as opposed to the lower-level SslContext type).","status":"published","published":"2021-08-25T20:43:11Z","modified":"2023-11-08T03:58:21.57591Z","cvss":[{"version":"3.0","score":8.1,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-295"],"updated_at":"2026-11-02T15:46:35.050232Z"},{"id":"RUSTSEC-2016-0001","title":"SSL/TLS MitM vulnerability due to insecure defaults","description":"All versions of rust-openssl prior to 0.9.0 contained numerous insecure defaults\nincluding off-by-default certificate verification and no API to perform hostname\nverification.\n\nUnless configured correctly by a developer, these defaults could allow an attacker\nto perform man-in-the-middle attacks.\n\nThe problem was addressed in newer versions by enabling certificate verification\nby default and exposing APIs to perform hostname verification. Use the\n`SslConnector` and `SslAcceptor` types to take advantage of these new features\n(as opposed to the lower-level `SslContext` type).","status":"published","published":"2016-11-05T12:00:00Z","modified":"2026-02-04T04:25:11.291505Z","cvss":[{"version":"3.0","score":8.1,"vector":"CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:53:39.492624Z"}]}}
