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.

Cryptography and TLSUpdated August 11, 2026
Also known asDROWNCVE-2016-0800Decrypting RSA with Obsolete and Weakened eNcryption

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.

1

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.

2

Capture a TLS handshake

Record a TLS session that uses RSA key transport so the encrypted premaster secret is available offline.

3

Query the SSLv2 oracle

Send crafted SSLv2 RSA handshakes related to the captured ciphertext, learning from protocol behavior and weak crypto.

4

Recover the premaster secret

Combine oracle answers—and for special DROWN, implementation bugs—to reconstruct the TLS session key material.

5

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 sits among Bleichenbacher-style RSA padding issues and other “legacy SSL still enabled” incidents.

PropertyDROWNROBOTPOODLE
IdentifierCVE-2016-0800Multiple vendor CVEs (2017)CVE-2014-3566
Core ideaSSLv2 oracle decrypts TLS RSATLS RSA PKCS#1 v1.5 oracleSSL 3.0 CBC padding oracle
Needs SSLv2?Yes (as oracle surface)NoSSL 3.0 fallback focus
Key reuse critical?Yes—bridges protocolsSame host TLS RSA enoughProtocol version more than key reuse
Modern fix themeKill SSLv2; stop RSA key shareFix RSA decrypt oracles; prefer PFSDisable 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

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.

Browse glossary