Heartbleed
loresecuritycryptography
The 2014 OpenSSL flaw that let attackers read chunks of a server's memory, including keys and passwords.
A missing bounds check in the TLS heartbeat extension let a client ask for more data than it sent and receive whatever happened to be adjacent in memory. It was one of the first bugs with a logo and a name, and it forced a global scramble to patch servers and rotate secrets.
Heartbleed was a missing bounds check in OpenSSL's implementation of the TLS heartbeat extension. A client could claim its message was sixty-four kilobytes long while sending one byte, and the server would return that byte plus whatever happened to be adjacent in memory: session keys, credentials, private keys, other users' requests.
Two properties made it exceptionally serious. It left no trace, because a heartbeat is a legitimate message and nothing about the exchange looked anomalous in logs, so nobody could establish whether they had been exploited. And it had been present for roughly two years in software running a large share of the internet's HTTPS, which meant every affected key had to be treated as compromised and every certificate reissued.
It also changed how the industry funds its foundations. OpenSSL at the time was maintained by a very small number of people on almost no money, despite being load-bearing for global commerce, and the discovery that this was normal rather than exceptional led to the Core Infrastructure Initiative and its successors. Heartbleed is the reason "given enough eyeballs, all bugs are shallow" is now quoted with a caveat.
Also known as: Heartbleed, CVE-2014-0160, OpenSSL heartbeat bug
Sources
- CVE-2014-0160 (2014)