Cybersecurity glossary
What is DROWN (CVE-2016-0800)?
Learn what DROWN (CVE-2016-0800) is, how SSLv2 RSA weaknesses decrypted modern TLS sessions sharing keys, who was affected, and how disabling SSLv2 and isolating keys eliminates the risk.
Definition
DROWN (Decrypting RSA with Obsolete and Weakened eNcryption), tracked as CVE-2016-0800, is a cross-protocol attack that uses a server’s SSLv2 RSA implementation as an oracle to decrypt TLS connections that reuse the same RSA private key—even when those TLS connections never negotiate SSLv2 themselves.
Why DROWN mattered
By 2016, most operators believed SSLv2 was a museum piece. DROWN (Decrypting RSA with Obsolete and Weakened eNcryption), assigned CVE-2016-0800, showed that museum pieces still connected to the live Internet—and that shared RSA keys could smuggle weakness from SSLv2 into modern TLS.
Large fractions of HTTPS servers were estimated to be exposed at disclosure, either directly or through another protocol on the same certificate key. The attack reframed “legacy SSL on a side service” as a first-class risk to production TLS confidentiality.
What CVE-2016-0800 actually is
DROWN is a cross-protocol attack. An adversary collects RSA-encrypted key-transport material from a TLS handshake, then queries an SSLv2 endpoint that uses the same RSA private key. SSLv2’s export-era cryptography and error behavior supply enough information to recover the TLS premaster secret, decrypting the recorded session.
Obsolete protocol lever
SSLv2 RSA cipher suites and weak export constructions create usable cryptographic oracles.
Shared key bridge
The same RSA private key used for TLS key transport and for an SSLv2 service links the two worlds.
TLS impact
Captured TLS handshakes using RSA key exchange can be decrypted after enough SSLv2 queries.
Special DROWN
OpenSSL-specific SSLv2 bugs made a much cheaper, highly practical variant for many hosts.
RSA key exchange was already declining in favor of forward-secret Diffie–Hellman modes. DROWN accelerated that migration by proving leftover RSA key transport plus legacy SSL was a systemic liability.
How the DROWN attack works
General DROWN and special DROWN differ in cost, but both follow a cross-protocol pattern.
Find a shared RSA key
Identify TLS services and an SSLv2-capable service—possibly on another port or hostname—using the same certificate private key.
Capture a TLS handshake
Record a TLS session that uses RSA key transport so the encrypted premaster secret is available offline.
Query the SSLv2 oracle
Send crafted SSLv2 RSA handshakes related to the captured ciphertext, learning from protocol behavior and weak crypto.
Recover the premaster secret
Combine oracle answers—and for special DROWN, implementation bugs—to reconstruct the TLS session key material.
Decrypt application data
With the session keys, decrypt the previously captured HTTPS or other TLS payloads.
Attackers did not need the victim browser to speak SSLv2. They needed the operator to leave SSLv2 reachable with a reused key.
DROWN compared with related RSA and SSL failures
DROWN sits among Bleichenbacher-style RSA padding issues and other “legacy SSL still enabled” incidents.
| Property | DROWN | ROBOT | POODLE |
|---|---|---|---|
| Identifier | CVE-2016-0800 | Multiple vendor CVEs (2017) | CVE-2014-3566 |
| Core idea | SSLv2 oracle decrypts TLS RSA | TLS RSA PKCS#1 v1.5 oracle | SSL 3.0 CBC padding oracle |
| Needs SSLv2? | Yes (as oracle surface) | No | SSL 3.0 fallback focus |
| Key reuse critical? | Yes—bridges protocols | Same host TLS RSA enough | Protocol version more than key reuse |
| Modern fix theme | Kill SSLv2; stop RSA key share | Fix RSA decrypt oracles; prefer PFS | Disable SSL 3.0 |
Who was affected
Organizations were exposed when any of the following held:
- A public HTTPS server still offered SSLv2.
- SMTP, IMAP, POP, or other TLS wrappers on the same certificate still offered SSLv2.
- A forgotten appliance terminated SSL with a production certificate.
- Hosting platforms shared certificates across many customers’ legacy configurations.
Even teams who had “disabled SSLv2 on the website” could remain vulnerable through sibling services. Inventory across every listener using a key mattered more than a single SSL Labs score for the marketing hostname.
Mitigations that closed DROWN
Disable SSLv2 everywhere
Remove SSLv2 from all listeners—web, mail, LDAP, VPN appliances—not only the primary website.
Patch TLS libraries
Apply OpenSSL and vendor fixes that remove vulnerable SSLv2 behavior and special DROWN conditions.
Stop unsafe key reuse
Do not share RSA private keys between hardened TLS endpoints and any legacy SSL-capable service.
Prefer forward secrecy
Disable RSA key-transport cipher suites so captured handshakes are not decryptable via RSA oracles.
What practitioners should do today
- Scan all ports and hostnames tied to each certificate for SSLv2; do not trust a single HTTPS check.
- Disable SSL 2.0 and SSL 3.0 on every TLS terminator you own, including mail and internal APIs.
- Eliminate RSA key-exchange cipher suites; require ECDHE (or DHE) with modern AEAD suites.
- Avoid reusing private keys across unrelated products; issue distinct certificates per service tier when possible.
- Patch OpenSSL and vendor TLS stacks; replace devices that cannot disable SSLv2.
- Monitor certificate inventories for wide key reuse that would amplify a future cross-protocol bug.
- Treat ‘legacy protocol for one old client’ exceptions as organization-wide cryptographic risk, not local IT trivia.
- Re-test after infrastructure changes—new load balancers often reintroduce ancient protocol defaults.
Lessons DROWN left for operators
DROWN proved that protocol support is a fleet property, not a per-site checkbox. Cryptographic keys are shared secrets across every service that embeds them. Leaving one obsolete handshake enabled can undermine every modern handshake that depends on the same RSA key.
It also reinforced forward secrecy as operational hygiene. When session keys are not recoverable from a long-term private key alone, entire classes of offline and cross-protocol RSA decryption attacks lose their prize.
The practical takeaway
DROWN (CVE-2016-0800) used SSLv2 RSA weaknesses as an oracle to decrypt TLS sessions that shared the same RSA private key. Disable SSLv2 on every listener, stop sharing keys with legacy SSL services, prefer forward-secret cipher suites, and assume any remaining SSLv2 endpoint is still a threat to modern TLS confidentiality.
Related security terms
SSL/TLS
Protocol family where obsolete SSLv2 support enabled DROWN against newer TLS.
RSA
Public-key algorithm whose PKCS#1 v1.5 usages and shared private keys DROWN targeted.
Bleichenbacher Attack
Padding-oracle lineage that underlies special DROWN variants against RSA encryption.
TLS Downgrade Attack
Related theme of legacy protocol support creating rollback and cross-protocol risk.
POODLE (CVE-2014-3566)
Another incident that showed keeping ancient SSL versions enabled endangers modern deployments.
Frequently asked questions
What is DROWN in simple terms?
DROWN lets attackers abuse an old SSLv2 service to help decrypt newer TLS traffic when both services share the same RSA private key. You can be vulnerable even if your main HTTPS site only offers modern TLS.
What is CVE-2016-0800?
CVE-2016-0800 is the vulnerability identifier associated with the DROWN attack against servers that support SSLv2 with RSA and share keys with TLS services.
Does the TLS server need to speak SSLv2?
Not necessarily. If another service—mail, a forgotten virtual host, or a sibling appliance—offers SSLv2 with the same RSA key, that host can serve as the oracle against TLS sessions using that key.
What was special DROWN?
A faster variant that exploited certain OpenSSL SSLv2 bugs, making decryption practical with far fewer connections and less compute than the general attack.
How do you mitigate DROWN?
Disable SSLv2 everywhere, patch OpenSSL and other TLS stacks, and avoid sharing RSA private keys between hardened TLS endpoints and any legacy SSL services. Prefer modern key exchange where RSA key transport is unnecessary.
Is DROWN still a risk today?
On well-maintained public HTTPS it is rare, but legacy appliances, internal services, and long-lived certificates reused across products can still recreate the shared-key SSLv2 pattern.
Did DROWN steal private keys directly?
The headline impact was decrypting captured TLS sessions (RSA key-transport handshakes) using SSLv2 oracles—not exporting the private key file itself—though session plaintext recovery is already severe.
References
Explore authoritative guidance and frameworks related to drown (cve-2016-0800).
Explore every security definition
Return to the glossary to search by term, alias, starting letter, or security category.