Een van de meest bekende kwetsbaarheden van medio 2010 heette "Heartbleed". Heartbleed was bijzonder serieus omdat het de software was die het beïnvloedde "OpenSSL", de belangrijkste cryptografische bibliotheek voor HTTPS-verbindingen, die op grote schaal wordt gebruikt. Om het nog erger te maken, was het beveiligingslek al meer dan twee jaar aanwezig in OpenSSL voordat het werd ontdekt, gepubliceerd en gepatcht, wat betekende dat veel mensen een kwetsbare versie gebruikten.
Heartbleed was een kwetsbaarheid voor datalekken in de heartbeat-extensie die bij misbruik gegevens uit het RAM-geheugen lekte van de server naar de client. De heartbeat-extensie wordt gebruikt om een verbinding tussen de webserver en de client in stand te houden zonder een normaal paginaverzoek te doen.
In het geval van OpenSSL stuurt de client een bericht naar de server en informeert de server hoe lang het bericht is, tot 64 KB. De server wordt dan verondersteld hetzelfde bericht terug te echoën. Cruciaal is echter dat de server niet heeft gecontroleerd of het bericht zo lang was als de client beweerde dat het was. Dit betekende dat een client een bericht van 10 KB kon verzenden, beweren dat het 64 KB was en een antwoord van 64 KB kon krijgen, waarbij de extra 54 KB bestond uit de volgende 54 KB RAM, ongeacht welke gegevens daar waren opgeslagen. Dit proces wordt goed gevisualiseerd door de XKCD-strip #1354 .
Afbeelding met dank aan xkcd.com .
Door veel kleine hartslagverzoeken te doen, en te beweren dat het grote waren, kon een aanvaller een afbeelding maken van het grootste deel van het RAM-geheugen van de server door de antwoorden samen te voegen. Gegevens die in RAM zijn opgeslagen en die kunnen worden gelekt, zijn onder meer coderingssleutels, HTTPS-certificaten en niet-versleutelde POST-gegevens zoals gebruikersnamen en wachtwoorden.
Opmerking: het is minder bekend, maar het hartslagprotocol en de exploit werkten ook in de andere richting. Een kwaadwillende server kan zijn geconfigureerd om tot 64 KB aan gebruikersgeheugen per hartslagverzoek te lezen.
Het probleem werd op 1 april 2014 onafhankelijk van elkaar ontdekt door meerdere beveiligingsonderzoekers en werd privé bekendgemaakt aan OpenSSL, zodat er een patch kon worden gemaakt. De bug werd gepubliceerd toen de patch op 7 april 2014 werd uitgebracht. De beste oplossing om het probleem op te lossen was om de patch toe te passen, maar het was ook mogelijk om het probleem op te lossen door de heartbeat-extensie uit te schakelen als patchen niet onmiddellijk een keuze.
Helaas, ondanks dat de exploit openbaar en algemeen bekend was, werden veel websites nog steeds niet onmiddellijk geüpdatet, waarbij de kwetsbaarheid zelfs jaren later nog steeds af en toe werd gevonden. Dit leidde ertoe dat een aantal gevallen van de exploit werden gebruikt om toegang te krijgen tot accounts of gegevens te lekken.