{"id":"CVE-2017-3737","state":"PUBLISHED","title":"OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an \"error state\" mechanism. The intent was that if a fatal error occurred during a handshake then OpenSSL would move into th","description":"OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an \"error state\" mechanism. The intent was that if a fatal error occurred during a handshake then OpenSSL would move into the error state and would immediately fail if you attempted to continue the handshake. This works as designed for the explicit handshake functions (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a bug it does not work correctly if SSL_read() or SSL_write() is called directly. In that scenario, if the handshake fails then a fatal error will be returned in the initial function call. If SSL_read()/SSL_write() is subsequently called by the application for the same SSL object then it will succeed and the data is passed without being decrypted/encrypted directly from the SSL/TLS record layer. In order to exploit this issue an application bug would have to be present that resulted in a call to SSL_read()/SSL_write() being issued after having already received a fatal error. OpenSSL version 1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is not affected.","publishedAt":"2017-12-07T16:00:00.000Z","updatedAt":"2024-09-17T03:53:31.262Z","severity":null,"assigner":"openssl","products":["OpenSSL Software Foundation OpenSSL"],"affected":[{"vendor":"OpenSSL Software Foundation","product":"OpenSSL","versions":[{"version":"1.0.2b-1.0.2m","status":"affected"}]}],"references":["https://access.redhat.com/errata/RHSA-2018:2185","https://access.redhat.com/errata/RHSA-2018:2186","https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc","http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html","http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html","https://security.netapp.com/advisory/ntap-20180419-0002/","https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc","https://security.gentoo.org/glsa/201712-03","http://www.securitytracker.com/id/1039978","https://www.openssl.org/news/secadv/20171207.txt","https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/","https://access.redhat.com/errata/RHSA-2018:0998","http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html","https://www.debian.org/security/2017/dsa-4065","https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf","http://www.securityfocus.com/bid/102103","https://www.tenable.com/security/tns-2017-16","https://access.redhat.com/errata/RHSA-2018:2187","https://security.netapp.com/advisory/ntap-20180117-0002/","https://security.netapp.com/advisory/ntap-20171208-0001/","https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html"],"weaknesses":[],"ingestedAt":"2026-10-29T19:43:42.704Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2017/3xxx/CVE-2017-3737.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2017-3737","state":"PUBLISHED","datePublished":"2017-12-07T16:00:00.000Z","dateUpdated":"2024-09-17T03:53:31.262Z","assignerShortName":"openssl","assignerOrgId":"3a12439a-ef3a-4c79-92e6-6081a721f1e5","dateReserved":"2016-12-16T00:00:00.000Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an \"error state\" mechanism. The intent was that if a fatal error occurred during a handshake then OpenSSL would move into the error state and would immediately fail if you attempted to continue the handshake. This works as designed for the explicit handshake functions (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a bug it does not work correctly if SSL_read() or SSL_write() is called directly. In that scenario, if the handshake fails then a fatal error will be returned in the initial function call. If SSL_read()/SSL_write() is subsequently called by the application for the same SSL object then it will succeed and the data is passed without being decrypted/encrypted directly from the SSL/TLS record layer. In order to exploit this issue an application bug would have to be present that resulted in a call to SSL_read()/SSL_write() being issued after having already received a fatal error. OpenSSL version 1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is not affected."}],"affected":[{"vendor":"OpenSSL Software Foundation","product":"OpenSSL","versions":[{"version":"1.0.2b-1.0.2m","status":"affected"}]}],"references":[{"url":"https://access.redhat.com/errata/RHSA-2018:2185","name":"RHSA-2018:2185","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2018:2186","name":"RHSA-2018:2186","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc","tags":["x_refsource_CONFIRM"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html","tags":["x_refsource_CONFIRM"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html","tags":["x_refsource_CONFIRM"]},{"url":"https://security.netapp.com/advisory/ntap-20180419-0002/","tags":["x_refsource_CONFIRM"]},{"url":"https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc","name":"FreeBSD-SA-17:12","tags":["vendor-advisory","x_refsource_FREEBSD"]},{"url":"https://security.gentoo.org/glsa/201712-03","name":"GLSA-201712-03","tags":["vendor-advisory","x_refsource_GENTOO"]},{"url":"http://www.securitytracker.com/id/1039978","name":"1039978","tags":["vdb-entry","x_refsource_SECTRACK"]},{"url":"https://www.openssl.org/news/secadv/20171207.txt","tags":["x_refsource_CONFIRM"]},{"url":"https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/","tags":["x_refsource_MISC"]},{"url":"https://access.redhat.com/errata/RHSA-2018:0998","name":"RHSA-2018:0998","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html","tags":["x_refsource_CONFIRM"]},{"url":"https://www.debian.org/security/2017/dsa-4065","name":"DSA-4065","tags":["vendor-advisory","x_refsource_DEBIAN"]},{"url":"https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf","tags":["x_refsource_CONFIRM"]},{"url":"http://www.securityfocus.com/bid/102103","name":"102103","tags":["vdb-entry","x_refsource_BID"]},{"url":"https://www.tenable.com/security/tns-2017-16","tags":["x_refsource_CONFIRM"]},{"url":"https://access.redhat.com/errata/RHSA-2018:2187","name":"RHSA-2018:2187","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://security.netapp.com/advisory/ntap-20180117-0002/","tags":["x_refsource_CONFIRM"]},{"url":"https://security.netapp.com/advisory/ntap-20171208-0001/","tags":["x_refsource_CONFIRM"]},{"url":"https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html","tags":["x_refsource_MISC"]}],"problemTypes":[{"descriptions":[{"description":"Unauthenticated read/unencrypted write","lang":"en","type":"text"}]}],"providerMetadata":{"shortName":"openssl","dateUpdated":"2019-07-23T22:31:33.000Z","orgId":"3a12439a-ef3a-4c79-92e6-6081a721f1e5"},"datePublic":"2017-12-07T00:00:00.000Z","x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"openssl-security@openssl.org","DATE_PUBLIC":"2017-12-07T00:00:00","ID":"CVE-2017-3737","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"OpenSSL","version":{"version_data":[{"version_value":"1.0.2b-1.0.2m"}]}}]},"vendor_name":"OpenSSL Software Foundation"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"OpenSSL 1.0.2 (starting from version 1.0.2b) introduced an \"error state\" mechanism. The intent was that if a fatal error occurred during a handshake then OpenSSL would move into the error state and would immediately fail if you attempted to continue the handshake. This works as designed for the explicit handshake functions (SSL_do_handshake(), SSL_accept() and SSL_connect()), however due to a bug it does not work correctly if SSL_read() or SSL_write() is called directly. In that scenario, if the handshake fails then a fatal error will be returned in the initial function call. If SSL_read()/SSL_write() is subsequently called by the application for the same SSL object then it will succeed and the data is passed without being decrypted/encrypted directly from the SSL/TLS record layer. In order to exploit this issue an application bug would have to be present that resulted in a call to SSL_read()/SSL_write() being issued after having already received a fatal error. OpenSSL version 1.0.2b-1.0.2m are affected. Fixed in OpenSSL 1.0.2n. OpenSSL 1.1.0 is not affected."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"Unauthenticated read/unencrypted write"}]}]},"references":{"reference_data":[{"name":"RHSA-2018:2185","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2018:2185"},{"name":"RHSA-2018:2186","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2018:2186"},{"name":"https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc","refsource":"CONFIRM","url":"https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc"},{"name":"http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html","refsource":"CONFIRM","url":"http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html"},{"name":"http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html","refsource":"CONFIRM","url":"http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html"},{"name":"https://security.netapp.com/advisory/ntap-20180419-0002/","refsource":"CONFIRM","url":"https://security.netapp.com/advisory/ntap-20180419-0002/"},{"name":"FreeBSD-SA-17:12","refsource":"FREEBSD","url":"https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc"},{"name":"GLSA-201712-03","refsource":"GENTOO","url":"https://security.gentoo.org/glsa/201712-03"},{"name":"1039978","refsource":"SECTRACK","url":"http://www.securitytracker.com/id/1039978"},{"name":"https://www.openssl.org/news/secadv/20171207.txt","refsource":"CONFIRM","url":"https://www.openssl.org/news/secadv/20171207.txt"},{"name":"https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/","refsource":"MISC","url":"https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/"},{"name":"RHSA-2018:0998","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2018:0998"},{"name":"http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html","refsource":"CONFIRM","url":"http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html"},{"name":"DSA-4065","refsource":"DEBIAN","url":"https://www.debian.org/security/2017/dsa-4065"},{"name":"https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf","refsource":"CONFIRM","url":"https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf"},{"name":"102103","refsource":"BID","url":"http://www.securityfocus.com/bid/102103"},{"name":"https://www.tenable.com/security/tns-2017-16","refsource":"CONFIRM","url":"https://www.tenable.com/security/tns-2017-16"},{"name":"RHSA-2018:2187","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2018:2187"},{"name":"https://security.netapp.com/advisory/ntap-20180117-0002/","refsource":"CONFIRM","url":"https://security.netapp.com/advisory/ntap-20180117-0002/"},{"name":"https://security.netapp.com/advisory/ntap-20171208-0001/","refsource":"CONFIRM","url":"https://security.netapp.com/advisory/ntap-20171208-0001/"},{"name":"https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html","refsource":"MISC","url":"https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html"}]}}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://access.redhat.com/errata/RHSA-2018:2185","name":"RHSA-2018:2185","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2018:2186","name":"RHSA-2018:2186","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://security.netapp.com/advisory/ntap-20180419-0002/","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc","name":"FreeBSD-SA-17:12","tags":["vendor-advisory","x_refsource_FREEBSD","x_transferred"]},{"url":"https://security.gentoo.org/glsa/201712-03","name":"GLSA-201712-03","tags":["vendor-advisory","x_refsource_GENTOO","x_transferred"]},{"url":"http://www.securitytracker.com/id/1039978","name":"1039978","tags":["vdb-entry","x_refsource_SECTRACK","x_transferred"]},{"url":"https://www.openssl.org/news/secadv/20171207.txt","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/","tags":["x_refsource_MISC","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2018:0998","name":"RHSA-2018:0998","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://www.debian.org/security/2017/dsa-4065","name":"DSA-4065","tags":["vendor-advisory","x_refsource_DEBIAN","x_transferred"]},{"url":"https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"http://www.securityfocus.com/bid/102103","name":"102103","tags":["vdb-entry","x_refsource_BID","x_transferred"]},{"url":"https://www.tenable.com/security/tns-2017-16","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2018:2187","name":"RHSA-2018:2187","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://security.netapp.com/advisory/ntap-20180117-0002/","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://security.netapp.com/advisory/ntap-20171208-0001/","tags":["x_refsource_CONFIRM","x_transferred"]},{"url":"https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html","tags":["x_refsource_MISC","x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-05T14:39:40.599Z"}}]}}}