← Vulnerability feed

Vulnerability record · CVE-2017-3737 · published 7 December 2017

CVE-2017-3737: OpenSSL error-state bypass in SSL_read/SSL_write after failed handshake

OOpenssl · Openssl

OpenSSL 1.0.2b through 1.0.2m fails to enforce its handshake error state when an application calls SSL_read() or SSL_write() directly after a fatal handshake error. Instead of failing, those calls succeed and pass data straight to or from the TLS record layer without encryption or decryption. This matters because it can silently break the confidentiality and integrity guarantees applications expect from TLS.

5.9 CVSS 3.0 Medium EPSS 79% · top 0.4% CWE-125 · Out-of-bounds readCWE-787 · Out-of-bounds write
5.9CVSS 3.0 base score, v2 4.3
79%EPSS exploitation probability, 30 days
NoNot in CISA KEV
2Affected product versions listed by NVD
42References
17 Jun 2026Last modified by NVD

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.

CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Automated analysis

Generated by VULONE's analysis model from the NVD record, CISA KEV and EPSS data on 18 September 2026. Confidence: high.

medium priorityCVSS 3.0 base score is 5.9 (medium) and exploitation requires a specific application coding bug, though the high EPSS and broad OpenSSL deployment warrant prompt patching.

What it is

OpenSSL 1.0.2b through 1.0.2m fails to enforce its handshake error state when an application calls SSL_read() or SSL_write() directly after a fatal handshake error. Instead of failing, those calls succeed and pass data straight to or from the TLS record layer without encryption or decryption. This matters because it can silently break the confidentiality and integrity guarantees applications expect from TLS.

Impact

An attacker positioned to influence the connection could have plaintext read or written outside the TLS protection, exposing or injecting data. The CVSS vector rates confidentiality impact as high with no integrity or availability impact.

Attack surface

Reachable over the network (AV:N) but requires a race-prone condition (AC:H) and no authentication or user interaction (PR:N, UI:N). Exploitation additionally requires an application bug that calls SSL_read()/SSL_write() on the same SSL object after a fatal handshake error.

Exploitation

Not listed in CISA KEV and no ransomware associations are recorded. EPSS is high (0.78675, 99.567th percentile), but references carry only advisory and VDB tags, with no public exploit or in-the-wild reporting indicated.

What to do

  • Upgrade OpenSSL to 1.0.2n or later; 1.1.0 is not affected.
  • Apply vendor errata for bundled OpenSSL (Debian DSA-4065, Red Hat RHSA-2018:0998/2185/2186/2187, FreeBSD, Gentoo, NetApp, Oracle, Siemens).
  • Audit application code so SSL_read()/SSL_write() are not called on an SSL object after a fatal handshake error.
  • Track affected 1.0.2b-1.0.2m builds in SBOMs and prioritize internet-facing services for patching.

Detection

  • Inventory OpenSSL versions across hosts and containers to find 1.0.2b-1.0.2m.
  • Monitor TLS logs for handshake failures immediately followed by successful application data on the same connection.
  • Watch for anomalous plaintext or malformed records on TLS ports that suggest record-layer bypass.

This assessment is produced automatically and is not human-reviewed. Verify against the vendor advisory before acting on it.

Affected products

2 vulnerable configurations from NVD's CPE data, grouped by vendor and product.

References

LinkTags
http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html
http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
http://www.securityfocus.com/bid/102103 Third Party AdvisoryVDB Entry
http://www.securitytracker.com/id/1039978 Third Party AdvisoryVDB Entry
https://access.redhat.com/errata/RHSA-2018:0998
https://access.redhat.com/errata/RHSA-2018:2185
https://access.redhat.com/errata/RHSA-2018:2186
https://access.redhat.com/errata/RHSA-2018:2187
https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf
https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc
https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc Third Party Advisory
https://security.gentoo.org/glsa/201712-03 Third Party Advisory
https://security.netapp.com/advisory/ntap-20171208-0001/ Third Party Advisory
https://security.netapp.com/advisory/ntap-20180117-0002/
https://security.netapp.com/advisory/ntap-20180419-0002/
https://www.debian.org/security/2017/dsa-4065 Third Party Advisory
https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/ Third Party Advisory
https://www.openssl.org/news/secadv/20171207.txt Vendor Advisory
https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html
https://www.tenable.com/security/tns-2017-16
http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html
http://www.oracle.com/technetwork/security-advisory/cpujan2018-3236628.html
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
http://www.securityfocus.com/bid/102103 Third Party AdvisoryVDB Entry
http://www.securitytracker.com/id/1039978 Third Party AdvisoryVDB Entry
https://access.redhat.com/errata/RHSA-2018:0998
https://access.redhat.com/errata/RHSA-2018:2185
https://access.redhat.com/errata/RHSA-2018:2186
https://access.redhat.com/errata/RHSA-2018:2187
https://cert-portal.siemens.com/productcert/pdf/ssa-179516.pdf
https://github.com/openssl/openssl/commit/898fb884b706aaeb283de4812340bb0bde8476dc
https://security.FreeBSD.org/advisories/FreeBSD-SA-17:12.openssl.asc Third Party Advisory
https://security.gentoo.org/glsa/201712-03 Third Party Advisory
https://security.netapp.com/advisory/ntap-20171208-0001/ Third Party Advisory
https://security.netapp.com/advisory/ntap-20180117-0002/
https://security.netapp.com/advisory/ntap-20180419-0002/
https://www.debian.org/security/2017/dsa-4065 Third Party Advisory
https://www.digitalmunition.me/2017/12/cve-2017-3737-openssl-security-bypass-vulnerability/ Third Party Advisory
https://www.openssl.org/news/secadv/20171207.txt Vendor Advisory

Track CVE-2017-3737 inside VULONE

Watch it alongside the ransomware crews, C2 infrastructure and forum chatter that reference it, query it through the API and pull it into your SIEM over TAXII.

Start free Open in platform

Related vulnerabilities

Same products first, then exploited flaws of the same weakness class.

10.0CVE-2025-32433Erlang/OTP SSH server missing authentication allows remote code executionErlang/OTP SSH servers before OTP-27.3.3, OTP-26.2.5.11 and OTP-25.3.2.20 mishandle SSH protocol messages, letting an unauthenticated attacker execut…KEVEPSS 99%analysed10.0CVE-2025-24201Apple WebKit out-of-bounds write allows sandbox escapeCVE-2025-24201 is an out-of-bounds write in Apple's WebKit that was addressed with improved checks. Maliciously crafted web content may break out of …KEVEPSS 3.8%analysed10.0CVE-2021-44228Apache Log4j2 JNDI lookup remote code executionApache Log4j2 versions 2.0-beta9 through 2.15.0 (excluding 2.12.2, 2.12.3, and 2.3.1) do not protect against attacker-controlled LDAP and other JNDI …KEVEPSS 100%analysed9.8CVE-2026-24061GNU Inetutils telnetd argument injection allows remote auth bypasstelnetd in GNU Inetutils through 2.7 fails to sanitize the USER environment variable, so a value such as "-f root" is passed as an argument to login …KEVEPSS 99%analysed9.8CVE-2025-39682Linux kernel TLS zero-length record handling flaw on rx_listThe Linux kernel TLS receive path mishandles zero-length records that arrive from the rx_list, breaking the assumption that a record type change cann…KEVEPSS 2.9%analysed9.8CVE-2025-24813Apache Tomcat Default Servlet path equivalence enables RCE and file disclosureApache Tomcat mishandles path equivalence for names containing an internal dot, letting a remote unauthenticated attacker write files through the Def…KEVEPSS 100%analysed9.8CVE-2024-9680Mozilla Firefox and Thunderbird use-after-free in Animation timelinesA use-after-free flaw in Animation timelines allows an attacker to execute code in the content process of Firefox and Thunderbird. Mozilla reports ex…KEVEPSS 23%analysed9.8CVE-2023-46604Apache ActiveMQ OpenWire deserialization remote code executionThe Java OpenWire protocol marshaller in Apache ActiveMQ deserializes untrusted data, letting an attacker manipulate serialized class types so the br…KEVEPSS 100%analysed

Source: NIST National Vulnerability Database (record CVE-2017-3737), CISA KEV, FIRST EPSS (scores of 2026-09-25). This page is refreshed as NVD updates the record.