Heartbleed-bug er en fejl i open-source krypteringsbiblioteket OpenSSL som gør det muligt for en angriber at læse en servers eller en klients hukommelse, hvilket f.eks. tillader dem at læse en servers eller en klients SSL private keys, private data; PIM-data (fx billeder, kodeord, brugernavne...).[1] Undersøgelser af logfiler lader til at vise at nogle angribere kan have udnyttet fejlen gennem mere end 5 måneder før den blev opdaget og offentliggjort.[2][3][4]
Den 7. april 2014, blev det annonceret at OpenSSL 1.0.2-beta samt alle versioner af OpenSSL i 1.0.1 serien, bortset fra 1.0.1g, havde en alvorlig hukommelseshåndteringsfejl i deres implementering af TLS Heartbeat udvidelsen.[5][6] Denne defekt kunne blive brugt til at afsløre op til 64 kilobyte af applikationshukommelsen med hvert eneste heartbeat.[7] Dens CVE nummer er CVE-2014-0160.[8]
Fejlen fremprovokeres ved at sende en fejl-formateret heartbeat forespørgsel til serveren for at vise serverens hukommelse. På grund af manglende bounds checking, kontrollerede de berørte versioner af OpenSSL aldrig om heartbeat forespørgslen var valid, hvilket gjorde det muligt for angribere at frembringe upassende serversvar.
Sårbarheden har eksisteret siden 31. december 2011, og den sårbare kode er blevet meget udbredt med udgivelsen af OpenSSL version 1.0.1 den 14. marts 2012.[9][10][11]
Ved at læse webserverens hukommelse, kunne angribere få adgang til følsomme data samt kompromittere serveren og dens brugeres sikkerhed. Potentialt sårbare sikre data omfatter serverens private master key,[9][11] hvilket gør det muligt for angribere at afkryptere aktuel eller opbevaret trafik gennem passivt man-in-the-middle angreb (hvis perfect forward secrecy ikke bliver brugt af serveren og klienten), eller activt man-in-the-middle hvis perfect forward secrecy bliver brugt. Angriberen kan ikke kontrollere hvilke data der bliver returneret eftersom serveren svarer med en tilfældig del af dens egen hukommelse.
For at rette fejlen anbefales det at server-administratorer bruger enten 1.0.1g eller at de re-compilerer OpenSSL med -DOPENSSL_NO_HEARTBEATS, for på den måde at slå den sårbare funktion fra indtil server-softwaren kan blive opdateret.
På dagen for annonceringen, udsendte Tor projektet en meddelelse på dets blog og opfordrede alle der søgte "stærk anonymitet eller privatliv på Internettet" at "holde sig helt væk fra Internettet de næste dage indtil ting falder til ro." De anbefalede også at Tor relay-operatører og skjulte tjenesteoperatører trak nøgler tilbage og generede friske nøgler efter at have opdateret OpenSSL, men fremhævede at Tor-relays bruger to sæt nøgler og at Tors multi-hop design minimerer virkningen ved at udnytte et enkelt relay.[19]
Det canadiske skattevæsen (CRA) lukkede sine elektroniske tjenester pga. bekymringer over sikkerheden foranlediget af Heartbleed-bug.[20]
Platform-vedligeholdere som Wikimedia Foundation opfordrede deres brugere til at skifte kodeord.[21]
Theo de Raadt, grundlægger og leder af OpenBSD og OpenSSH projekterne, har kritiseret OpenSSL udviklerne for eksplicit at omgå OpenBSD C standard bibliotekets foranstaltninger mod misbrug, han udtaler at "OpenSSL ikke er udviklet af en ansvarlig gruppe."[23][24]
Fejlens forfatter, Robin Seggelmann,[25] udtalte at han "overså validering af en variabel der indeholder en længde" og nægtede at der lå en bevidst handling bag frigivelsen af den fejlbehæftede implementering.[26]
LastPass Password Manager — Selvom LastPass i sig selv ikke var sårbar, anbefalede LastPass at dets brugere ændrede de kodeord LastPass gemte for sårbare websider,[32] især "alle" med en GitHub, OkCupid, eller Yahoo konto. LastPass stillede en side, på hvilken offentligheden kan kontrollere om en webside er sårbar, til rådighed.[33] Den 9. april 2014 begyndte LastPass at oplyse sine brugere om hvorvidt det var kendt om Heartbleed påvirkede websiden for hver eneste gemte kodeord.[34]
Fejlen er klassificeret som en buffer over-read fejl.[47] En buffer over-read fejl er en situation hvor software tillader flere data at blive læst end det burde være tilladt.[48]
Version 1.0.1g af OpenSSL tilføjer nogle grænsechecks for at forhindre at bufferen bliver over-read. F.eks., er testen
En fuld liste over ændringerne findes på git.openssl.org.[49]
Opdatering er ikke nok for at rette denne fejl. Relaterede tjenester skal også genstartes og/eller serveren genstartes før den opdaterede OpenSSL bliver brugt hvorefter alle private keys og kodeord skal regeneres.[50]
^Apr 14, 2014, arstechnica.com: Vicious Heartbleed bug bites millions of Android phones, other devices, backup Citat: "...Handsets running version 4.1.1 of Google's mobile operating system are vulnerable to attacks that might pluck passwords, the contents of personal messages, and other private information out of device memory, a company official warned on Friday...some versions of Android 4.2.2...also been found to be susceptible. Rogers said other releases may contain the critical Heartbleed flaw as well..."