A missing bounds check in OpenSSL’s TLS heartbeat implementation allowed attackers to request up to 64 KiB of adjacent server memory without authentication. The flawed code was submitted by Ph.D. student Robin Seggelmann in 2011, reviewed by OpenSSL core developer Stephen N. Henson, and released in OpenSSL 1.0.1 on 14 March 2012 with heartbeat enabled by default. Google security engineer Neel Mehta privately reported the vulnerability to OpenSSL on 1 April 2014; Google and Codenomicon discovered it independently. OpenSSL 1.0.1g was released on 7 April 2014, the day of public disclosure.
At disclosure, roughly 17%—about 500,000—of publicly trusted secure web servers were believed vulnerable. Memory exposed session cookies, passwords, form data, and potentially private keys, forcing certificate replacement and credential resets; Netcraft reported that only 43% of affected sites had reissued certificates by 9 May 2014, and 7% reused potentially compromised keys. Canada’s Revenue Agency said attackers stole the social insurance numbers of 900 taxpayers during a six-hour period on 8 April; the RCMP charged a computer-science student on 16 April. In August 2014, Community Health Systems disclosed that Heartbleed had enabled theft of data from 4.5 million patient records. Claims that the NSA knew of and secretly exploited the bug were reported by Bloomberg’s unnamed sources but denied by the NSA and Richard A. Clarke, and remain unverified.