Keyboard Navigation
W
A
S
D
or arrow keys · M for map · Q to exit
← Back to Incident Room
2014breachPublic

Heartbleed — The Internet's Open Wound

A missing bounds check in OpenSSL's heartbeat extension allowed attackers to read up to 64KB of server memory per request — private keys, passwords, session data. Approximately 17% of all secure web servers were vulnerable.

2 min read
Root Cause

The TLS heartbeat message includes a payload length field. OpenSSL read that many bytes from memory without checking whether the actual payload was that long. The bug existed for over two years before discovery. OpenSSL was maintained by a handful of underfunded volunteers.

Aftermath

Led to the creation of the Core Infrastructure Initiative (later the Open Source Security Foundation) to fund critical open-source projects. Accelerated adoption of perfect forward secrecy. The Heartbleed logo became the first 'branded vulnerability' — changing how the industry communicates about security flaws.

The Incident

On April 7, 2014, a vulnerability in OpenSSL's implementation of the TLS heartbeat extension was publicly disclosed. Designated CVE-2014-0160, it was given a name — Heartbleed — and a logo, making it the first "branded" vulnerability. Approximately 17% of all secure web servers on the internet were affected.

The Root Cause

The TLS heartbeat protocol allows one side of a connection to send a payload and request the other side to echo it back — a keepalive mechanism. The message includes a field declaring the payload length. OpenSSL's implementation read the declared length and returned that many bytes from memory — without checking whether the actual payload was that long.

An attacker could send a heartbeat message claiming a payload of 64KB while sending only a single byte. The server would return 64KB of whatever happened to be in memory adjacent to the actual message — potentially including private keys, session cookies, passwords, and other users' data. The attack left no trace in server logs.

The vulnerable code had been in OpenSSL since December 31, 2011. It was introduced in a commit that added heartbeat support and went unnoticed for over two years.

The Broader Failure

Heartbleed exposed a systemic problem: the most critical piece of security infrastructure on the internet — the library that encrypted traffic for banks, governments, healthcare systems, and millions of websites — was maintained by two developers, one of whom was working on it full-time, funded by donations that averaged less than $2,000 per year.

Why It Matters

A single missing bounds check exposed the private keys of millions of servers. The vulnerability existed for 27 months before discovery. The internet's encryption infrastructure was maintained by underfunded volunteers. Heartbleed proved that open-source security is not guaranteed by the "many eyes" theory — if the eyes aren't funded to look carefully, they don't see.

Techniques
buffer overreadmissing bounds check