A downgrade attack forces a system or connection to abandon a secure protocol or algorithm and fall back to an older, weaker one that the attacker can break.
How downgrade attacks work
Many protocols let both sides negotiate which version and cipher to use, and keep old options for compatibility. An attacker in a man-in-the-middle position can tamper with this negotiation – removing strong options, simulating errors or blocking upgrades – until the parties agree on something weak. Well-known examples from TLS history:
- POODLE (2014) – browsers retried failed connections with SSL 3.0, whose padding could then be attacked.
- FREAK (2015) and Logjam (2015) – tricked servers into using deliberately weak 1990s “export-grade” RSA and Diffie–Hellman keys.
- DROWN (2016) – abused servers that still supported SSLv2.
Other forms include SSL stripping, shown by Moxie Marlinspike’s sslstrip tool in 2009, which keeps a victim on plain HTTP instead of HTTPS, and forcing mobile phones from 4G down to 2G networks with weak or no encryption.
Why downgrade attacks matter
A modern protocol is only as strong as the weakest version both sides still accept. Legacy support in servers, VPNs, Wi-Fi and mobile networks keeps old vulnerabilities exploitable long after they are fixed in newer versions.
How to prevent downgrade attacks
- Disable SSL 2.0/3.0, TLS 1.0/1.1 and weak cipher suites; prefer TLS 1.3, which includes built-in downgrade protection (RFC 8446).
- Support the TLS_FALLBACK_SCSV signal (RFC 7507) on systems that still need older versions.
- Enable HTTP Strict Transport Security (HSTS, RFC 6797) and HSTS preloading.
- Turn off legacy protocol fallbacks in Wi-Fi, VPN and mobile configurations where possible.





