Paperis.

© 2026 네오쿤스. All rights reserved.

공지사항이용약관개인정보처리방침환불 정책콘텐츠·제거 요청

상호: 네오쿤스 · 대표자: 김근태 · 사업자등록번호: 751-04-03501 [사업자정보 확인] · 통신판매업 신고: 제 2026-서울서초-3586호 (서초구청)

주소: 서울특별시 서초구 서초대로 266, B103-S36호(서초동) · Tel: 010-7254-2475 · 이메일: support@paperis.app · 고객센터 운영 시간: 평일 10:00–16:00 (한국 시간, 주말·공휴일 제외) · 호스팅 서비스 제공자: Vercel Inc.

Paperis.

Paperis Articles

Heartbleed and OpenSSL — When One Bounds Check Was Missing

In April 2014, a flaw caused by one missing bounds check surfaced in a shared building block of encrypted Internet traffic. Using the documents and the research, we follow the gap between the fixed release and the actual fixing, the key replacement left after it, the memory-safety debate, and the money and people behind that building block.

📰Case✦AI-generatedComputer Science & AI · Oct 18, 2026

Your field's papers, as audio

Pick your fields and journals — Paperis summarizes the key papers and turns them into audio. Listen on your commute.

Start Paperis free →

Heartbleed and OpenSSL — When One Bounds Check Was Missing

April 2014, A Shared Part Behind the Padlock

On April 7, 2014, it was revealed that a serious flaw existed in a piece of software that supported encrypted communication on the internet. That software is OpenSSL. It is an open-source cryptographic library with public source code, and several programs borrow this part to use cryptographic functions (Discoverer Codenomicon explanatory page). This flaw was given the name Heartbleed and the public number CVE-2014-0160. The stage was servers around the world using this part, and the parties that found the flaw were security team researchers at the American company Google and the Finnish security testing company Codenomicon.

The job OpenSSL handled was locking on the road. The security of the connection indicated by the padlock icon in the browser's address bar involves encryption in transit—in other words, locking the contents on that road while data travels back and forth between my device and the other computer ("Encryption — The Content Is Locked, but the Record of Comings and Goings Remains"). TLS is a communication protocol that locks and protects the contents exchanged with a counterpart across the internet by the web, email, messenger, and some VPNs. In documents, it is also written as SSL/TLS by grouping it with the previous generation name. The flaw made it possible to steal information protected by this SSL/TLS encryption (Discoverer Codenomicon explanatory page).

This part was widely distributed. Representative software using OpenSSL includes the open-source web servers Apache and nginx, and in a web server survey in April 2014, the share occupied by the two products among active sites on the internet exceeded 66% combined (Discoverer Codenomicon explanatory page). This 66% is the market share of server software capable of using OpenSSL, not the proportion of vulnerable sites. The discoverers evaluated that many large consumer sites escaped harm thanks to conservative equipment choices, and rather, small and forward-looking services or those that upgraded to the latest encryption would be the most affected. Quite a bit of OpenSSL was also included in network equipment where updates were the slowest (Discoverer Codenomicon explanatory page).

The flaw entered OpenSSL in December 2011, and had been out in the world since version 1.0.1 on March 14, 2012 (Discoverer Codenomicon explanatory page). The vulnerable version had spread for over two years and the latest operating systems had quickly adopted it. One reason was that version 1.1 and 1.2 of TLS were supported for the first time in that version, and the security industry happened to be recommending an upgrade to TLS 1.2 (Discoverer Codenomicon explanatory page). The flaw was carried along in a version upgraded to become safer.

The circumstances of the people who maintained this part are conveyed by an article from a party involved. Steve Marquess, representative of the OpenSSL Software Foundation and who called himself the "money guy" of OpenSSL, wrote that his colleagues were in charge of hundreds of thousands of lines of complex code used by banks, firewalls, weapons systems, websites, smartphones, and even governments (Article by the OpenSSL Foundation representative).

The event documents this article relies on each have different characteristics. The security advisory of the OpenSSL project is a short notice by the maintenance side. The explanatory page by the discoverer Codenomicon is an article by the discoverer and a company selling security testing products, and that page also features an introduction to their own product. The National Vulnerability Database (NVD) entry of the National Institute of Standards and Technology (NIST) is a database recording vulnerabilities, and the note of the CERT Coordination Center (CERT/CC) sponsored by the US government is a record of coordinating vendor contact. Neither is a report investigating the cause. The list of the Cybersecurity and Infrastructure Security Agency (CISA) of the US is a government judgment on whether exploitation occurred. Marquess's article is a personal opinion from a party involved, and two announcements by the Linux Foundation are the industry's response after the event. There is no independent report in the documents reviewed by this article that separately investigated the cause in this incident. Therefore, whose interpretation it is is attached to sentences stating the cause.

Two Sides Found It Separately, and the Disclosures Crowded into a Single Day, April 7

The flaw was found separately by two sides. According to the commentary page by discoverer Codenomicon, three security engineers at Codenomicon (Riku, Antti, and Matti) and Neel Mehta of the Google Security Team found it independently of each other, and the side that reported it to the OpenSSL team first was Mehta (discoverer Codenomicon commentary page). Codenomicon found the flaw while improving the features of their internal security testing tool, and entrusted coordination to the Finnish National Cyber Security Centre (NCSC-FI) (discoverer Codenomicon commentary page).

The way credits are listed varies by document. The OpenSSL security advisory lists only Neel Mehta of the Google Security Team as the discoverer, and thanks two people who prepared the fix (OpenSSL security advisory). The CERT/CC note records, contrary to the body of the advisory, that OpenSSL credited both Codenomicon's three engineers and Mehta (CERT/CC vulnerability note). Marquardt's writing follows the order that "Google, and soon after Codenomicon" found it (writing by the OpenSSL Foundation president). The OpenSSL advisory merely listed Mehta and did not state that there were no other discoverers, while the discoverer page and the CERT/CC note list both sides together.

The disclosure happened before coordination was finished. The day Codenomicon found the flaw was April 3, 2014. Immediately after that, the NCSC-FI was confirming and analyzing the flaw and contacting OpenSSL developers and software, operating system, and equipment vendors that could be affected, and before that work was finished, the other side independently disclosed the details first (discoverer Codenomicon commentary page). The OpenSSL security advisory does not cover the disclosure process, and no document explains who disclosed it first or why.

Disclosures crowded into a single day, April 7. According to approximate times (UTC) compiled by the discoverer page, the OpenSSL security advisory came out around 17:30, a post by internet services company Cloudflare around 18:00, and the heartbleed.com commentary page around 19:00 (discoverer Codenomicon commentary page). The advisory told affected users to update to the fixed version OpenSSL 1.0.1g (OpenSSL security advisory). The US NVD entry is also registered with the same date (US NVD vulnerability entry). Because the discoveries overlapped, there were also two numbers. The discoverer page notes not to use CVE-2014-0346, which was assigned to the Codenomicon side. This is because the other side disclosed it first as CVE-2014-0160 (discoverer Codenomicon commentary page).

The discoveries were made by two sides, and the disclosures crowded into a single day before vendor contacts were finished.

Missing Boundary Checks and What Leaked

The maintainers' explanation is one sentence: because a boundary check was missing in the code handling the TLS heartbeat extension, memory contents could be exposed to the connected party up to a maximum of 64k (OpenSSL Security Advisory). Heartbeats are an added feature in TLS, used as signals sent back and forth to check whether the peer across the connection is still alive, exactly as the name suggests. Memory is the storage space where a program places data while it works.

A boundary check is the task of verifying whether a particular slot the program is about to read or write in memory falls within a pre-determined range. The US NVD's official description puts the same flaw in different words: OpenSSL 1.0.1 before 1.0.1g failed to properly handle TLS and DTLS heartbeat extension messages, allowing remote attackers to obtain sensitive information from program memory via a buffer over-read, and it was demonstrated that private keys—the keys possessed solely by the owner and never sent anywhere ("Keys and Locks — Why a Public Key Is Safe to Publish")—could be read (US NVD Vulnerability Item). A buffer over-read is an error in which a program reads beyond the end of the memory slot designated to hold data—namely, the buffer—and into the contents of the neighboring space. Like a butler who needs to retrieve documents for a reply from a single drawer, but fails to check where the drawer ends, inadvertently packing keys and letters from the adjacent drawer into the envelope. At that moment, whatever happened to be sitting in the neighboring space determined what leaked.

A chest with three drawers pulled open side by side. The middle drawer, the one to take from, holds papers; the drawer to its right holds a key and a sealed letter, and the divider between them is labeled as the end of the drawer, not checked. In the butler's hands, the reply envelope holds the papers from the middle drawer along with the key and letter from the next drawer.

When asked whether this was a protocol design flaw, the discoverers answered that it was an implementation issue, meaning a programming mistake (Discoverer Codenomicon Explanatory Page). This means the protocol remained unchanged, but a specific passage in OpenSSL that translated the protocol into code was wrong.

The figure of 64k is easily misunderstood. The "up to 64k" stated by the maintainers is the limit of the amount exposed at one time. The discoverers noted that there was no 64-kilobyte limit on the attack as a whole, and that the limit applied only to a single heartbeat (Discoverer Codenomicon Explanatory Page), and the CERT/CC note also recorded that it was up to 64k at a time (CERT/CC Vulnerability Note). Although the amount leaked at one time was at most 64k, repeating the process could leak far more than that.

What was at stake was described in the most detail on the discoverers' page: anyone on the internet could read the memory of systems protected by vulnerable versions, putting the secret keys used by services to prove their identities and encrypt communications, user names, passwords, and actual content at risk (Discoverer Codenomicon Explanatory Page). When the discoverers attacked their own service from the outside, they were able to extract private keys for certificates, user names, passwords, messenger messages, emails, and work documents without any special information or credentials. This attack left no trace in the logs indicating that anything unusual had happened (Discoverer Codenomicon Explanatory Page).

The heaviest blow was the keys. The discoverers divided the secrets that could leak into four categories, and called the first of these—the cryptographic keys themselves—"the crown jewels." The discoverers wrote that if these keys leaked, an attacker could decrypt past and future communications exchanged with the protected service and pretend to be that service at will (Discoverer Codenomicon Explanatory Page). Past communications being decrypted applies only if the attacker intercepted those communications in advance; in setups where a new key is generated for every connection, past communications are not decrypted even if the server key leaks. The CERT/CC note also stated that if an unauthenticated remote attacker obtains information such as private keys, they might be able to decrypt, forge, or perform man-in-the-middle attacks on communications that OpenSSL was originally supposed to protect (CERT/CC Vulnerability Note). A man-in-the-middle attack is an attack discussed in the "Keys and Locks" installment, where someone caught in the middle pretends to be the counterpart to both sides. If a server's private key leaks, the padlock icon may remain unchanged, but the key to that padlock could be in someone else's hands.

The way severity is described also varies from document to document. The Common Vulnerability Scoring System (CVSS) score assigned by the US NVD is 7.5 "High" under version 3.1, and 5.0 "Medium" under the older version 2.0. Under version 3.1, the impact on confidentiality is "High," while the impacts on integrity and availability are "None" (US NVD Vulnerability Item). Confidentiality—the property that ensures only authorized people can view information ("Security — Unseen by Others, Unchanged in Secret, Open When Needed")—was precisely what this flaw broke. Marques noted that many people called this "the worst security bug of all time," adding that while that description is subject to debate, it was a very serious vulnerability (Article by OpenSSL Foundation President), and the discoverers wrote that considering the prolonged exposure, easy exploitability, and traceless attacks, it had to be taken seriously (Discoverer Codenomicon Explanatory Page). Authors of a measurement study assessing the impact of this flaw right after the incident evaluated it as one of the vulnerabilities with the largest consequences since the commercial internet began (DOI: 10.1145/2663716.2663755).

Through a single missing boundary check, server keys could leak without leaving a trace in the logs, and the various terms used to describe the weight of that impact differ across documents.

"Nobody Saw It" — Where to Place the Weight of a Mistake

The weight given to the causes varies by document. The OpenSSL security advisory and the U.S. NVD entry list only the technical causes: namely, a missing bounds check and an excessive buffer read (OpenSSL security advisory; U.S. NVD vulnerability entry). The finders wrote that the security industry, including themselves, must learn how to catch such unavoidable human mistakes faster (finders' Codenomicon commentary page).

Marques interpreted it through the lens of structure. According to his writing, this code was written by a person of proven skill—a co-author of the Heartbeat specification—and reviewed by the OpenSSL team, yet nobody saw the problem. The code had been openly available to the entire OpenSSL community all along (OpenSSL Foundation president's post). Multinational corporations and major government agencies that used OpenSSL also failed to find it, or at least failed to report it, and it was only two years later that Google, and soon after Codenomicon, found it, he wrote (OpenSSL Foundation president's post). And he concluded with this: "The mystery is not that a few overworked volunteers missed this bug, but why such things do not happen more often" (OpenSSL Foundation president's post).

That structure had numbers in it. According to Marques, the net donations received by the OpenSSL Software Foundation were typically about $2,000 a year, and he also copied down media notes pointing out that the foundation's total annual revenue had never exceeded $1 million in the five years since its inception (OpenSSL Foundation president's post). The Linux Foundation also cited the same figure, stating that OpenSSL had received about $2,000 a year in donations over the past several years (Linux Foundation announcement). Steve Henson was effectively the only full-time person in charge of OpenSSL, and Marques argued that there should be at least six full-time team members (OpenSSL Foundation president's post). Most of the foundation's revenue was commercial contracts tied to specific deliverables, so basic maintenance such as release management, code review, and security had no money attached to them except for a few exceptions, he wrote (OpenSSL Foundation president's post).

The industry's diagnosis pointed to a similar spot. The Linux Foundation wrote that shared code has become more socially important and complex, yet some projects do not receive support commensurate with that importance (Linux Foundation announcement). Marques argued that the companies and governments that widely use OpenSSL and take it for granted must provide actual resources (OpenSSL Foundation president's post).

Research has given a name to this structure. Undersupply is a mismatched state where the supply of manpower to care for software falls short of the demand from people relying on that software. This is the argument that the maintenance of many widely used open-source components relies on volunteers who set their own priorities and tasks, making this a new form of risk (DOI: 10.1109/saner50967.2021.00043). This study analyzed not OpenSSL, but the entire package and bug records of the Linux distribution Debian, and reported that undersupply is widespread across multiple widely installed components (DOI: 10.1109/saner50967.2021.00043). This means that the situation Marques spoke of after Heartbleed may not be isolated to just a single project.

The causes cited by the documents are both a single missing bounds check and a structure where people and money to catch such flaws were lacking. The structural interpretation comes from the parties involved and the industry, and has not been verified by independent investigation.

The Day the Fixed Version Came Out and the Day It Was Fixed

On the day the fixed version came out, the internet was not fixed. The discoverer noted that while vulnerable versions were in use they could continue to be exploited, and since a fixed OpenSSL was now out, it needed to be installed. Operating system, equipment, and software vendors had to accept and announce it, and service providers and users had to install it (Discoverer Codenomicon explanation page).

Right after the incident, there was a measurement study that directly gauged the impact of this flaw. This study tracked a cluster of vulnerable servers, watched patching behavior over time, measured the impact on the HTTPS certificate ecosystem, and revealed actual attack attempts targeting this flaw. HTTPS is a web connection locked with TLS. The authors estimate that roughly 24 to 55% of widely used HTTPS sites were in a state where protected memory could be read remotely (DOI: 10.1145/2663716.2663755).

The same study also ran a large-scale notification experiment involving 150,000 servers, and patching increased by nearly 50% in servers that received a notice that they were vulnerable (DOI: 10.1145/2663716.2663755). Even though the flaw was public, when someone directly notified them, they fixed it more.

The day the fixed version came out and the day the internet fixed it are different, and notifications helped narrow the gap between them.

What Remained After the Fix — Replacing the Key and Collecting the Old Name Tag

A patch only plugs the hole; it does not recover a key that may have already leaked. According to the discoverers, recovery when the key itself has leaked involves patching the flaw, revoking the key that may have leaked, issuing a new key, and deploying it again. Even after doing all that, communications intercepted by an attacker in the past can still be decrypted, and all of this work must be done by the service owner (discoverer Codenomicon explanation page). Revocation is the act of invalidating an issued certificate before its expiration date ("Keys and Locks — Why a Public Key Is Safe to Publish"). A certificate is a name tag signed by a certificate authority certifying that this public key belongs to this server, and a certificate authority is an entity that vouches for the owner of that public key.

There was also an order of operations. The discoverers wrote that the service owner must first restore trust in the service before users begin changing their passwords, and that all session keys and session cookies must be invalidated and treated as having leaked (discoverer Codenomicon explanation page). How to revoke keys that may have leaked and obtain new certificates had to be asked of certificate authorities, some of which provided the service for free while others charged money (discoverer Codenomicon explanation page). CERT/CC was more resolute. It recommended that systems potentially exposed to this flaw should assume attackers had already taken things like private keys and passwords and should recreate them from scratch, while old keys must be revoked (CERT/CC Vulnerability Notes).

Tracing it for a single site looks like this. The server owner reinstalled OpenSSL after April 7. If the private key was sitting in the server memory while using a vulnerable version, whether that key leaked cannot be known from logs. Even if the owner changes the key and receives a new certificate, the old certificate matching the old key remains alive until its expiration date unless revoked. If someone holds the old key, they can pretend to be this site using that old certificate. Only after finishing the patch, the new key, the new certificate, revoking the old certificate, and even session invalidation can this site protect future communications again, and users changing their passwords comes after that. Even then, the discoverers noted that communications someone intercepted before that moment can still be decrypted (discoverer Codenomicon explanation page).

The work left after patching runs from left to right: a patch closing a gap in a chest of drawers, a new key, a new certificate tied to the new key, revoking the old certificate tied to the old key by filing it away in a box, invalidating sessions by gathering up all the visitor passes, and at the far end the user's password change, which comes after.

Just how much of that actually happened was measured by a measurement study that treated Heartbleed as a natural experiment. Certificate reissuance and revocation are management procedures mostly done by humans, and even three weeks after Heartbleed was disclosed, more than 73% of vulnerable certificates had not been reissued and more than 87% had not been revoked. Even right after Heartbleed was announced, revocation dropped significantly on weekends (DOI: 10.1145/3176244). Installing the patch was not the end. Receiving new certificates and collecting old name tags were procedures done by human hands, and they were slow.

The system for checking revoked name tags was also weak. Even in 2015, how often certificates were revoked and under what circumstances browsers checked for revocation were not well understood (DOI: 10.1145/2815675.2815685). OCSP, the representative method for asking whether a certificate is still valid, was criticized for slow performance, instability, the problem of simply proceeding even if the check fails, and privacy issues, and whether the entire web was ready for mechanisms to supplement this remained an open question even in 2018 (DOI: 10.1145/3278532.3278543). A 2025 paper proposing its own alternative points to the 25-year-long "soft-fail" rule, privacy leaks, and a shaky foundation to argue that the web's revocation system has failed deeply, and measured that 62% of revocation responses were served by a single content delivery network company, concentrating trust back in one place (DOI: 10.1145/3718958.3754351). What these three studies covered was not Heartbleed itself, but the web's revocation system around that time.

What remained after the fix depended on human hands and was slow, and the system for checking revocation also failed to support that process to the end.

Can a Language Prevent the Same Kind of Mistake?

Heartbleed happened in OpenSSL written in C. Memory safety is a property guaranteed to prevent memory errors, such as reading or writing outside of the slots a program has reserved. In languages close to the machine like C or C++, errors that overwrite and corrupt memory are among the oldest problems in computer security, having persisted for over 30 years; numerous solutions have emerged, yet they remain a severe threat. A major reason stricter protection measures have not seen widespread use is performance, and empirically, only solutions whose overhead falls within a modest range have actually been deployed (DOI: 10.1109/sp.2013.13). Heartbleed belongs to the same family of memory errors, on the side of reading past bounds rather than overwriting.

Attempts have also been made to graft bounds checking onto C. While the severe bugs and vulnerabilities arising from C and C++ lacking bounds checking are well known, C's pointer arithmetic and memory layout make it extremely difficult to retroactively attach mechanisms that guarantee spatial safety. One approach to catching all bound violations without modifying source code increased execution time by an average of 67% (DOI: 10.1145/1543135.1542504). Many existing defenses targeting overwrites do not fit or are impractical for the read-past-bounds side. However, in a test model mimicking an auction site, even a simple technique significantly reduced information leakage at a moderate performance cost (DOI: 10.1109/dsn.2015.59). This result is on a model and is not a value measured on an actual server.

Another path is to change the language. Rust is a programming language aimed at preventing memory safety bugs without largely sacrificing efficiency (DOI: 10.1145/3466642). However, Rust has an escape hatch. unsafe is code marked in Rust to be exempted from some of the compiler's safety rules, with the programmer taking responsibility for safety in that zone. A study analyzing bug reports covering all CVEs related to memory safety in Rust up to the end of 2020 concluded that Rust keeps this promise, as all memory safety bugs required unsafe code. The same study noted that many of those were minor soundness issues that left room to write memory safety bugs even without unsafe (DOI: 10.1145/3466642).

That hatch opens more often than one might think. Among real Rust libraries, fewer than 30% directly used the unsafe label, but because of unsafe hidden somewhere in the call chain, more than half could not be fully and statically verified by the compiler (DOI: 10.1145/3377811.3380413). Most unsafe code was simple and well-wrapped, but it was widely used especially when interfacing with code written in other languages (DOI: 10.1145/3428204). In known vulnerabilities within the Rust ecosystem, memory safety and concurrency issues accounted for nearly two-thirds, and vulnerable code statistically had significantly more unsafe functions and blocks than the rest of the code (DOI: 10.1145/3624738). Manually porting large legacy code written in C to Rust is a daunting task, and automatically translated programs also leave unsafe parts behind (DOI: 10.1145/3485498).

Flaws in TLS libraries also include kinds unrelated to memory. In widely used open-source TLS implementations, state machine flaws arising from improperly intertwining various protocol methods—that is, flaws in the logic handling message sequences—were discovered. Some of those had remained hidden for years and allowed network attackers to meddle in authenticated connections. The authors argued that formal verification is required for the core components of cryptographic libraries (DOI: 10.1109/sp.2015.39).

Memory-safe languages are tools to reduce the kinds of mistakes that produced Heartbleed, and that promise ends in front of unsafe code and other types of flaws.

Was It Actually Exploited — The "Don't Know" of 2014 and the List of 2022

To the question of whether this flaw was actually exploited, the finders' page answers "We don't know" (Finders' Codenomicon explanatory page). The finders themselves wrote that, fearing they might not have been the first to find it and that it was already exploited, they laboriously patched their own core services and dealt with key issues (Finders' Codenomicon explanatory page). CERT/CC's recommendation to "assume attackers have already taken it" is an assumption, not a confirmation (CERT/CC Vulnerability Note). The same note recorded that exploit code for this flaw was publicly available (CERT/CC Vulnerability Note).

There are records that attack attempts occurred. A measurement study right after the aforementioned incident reported that it revealed actual attack attempts targeting this flaw (DOI: 10.1145/2663716.2663755). What the attempts took is not in its abstract.

The day the U.S. Cybersecurity and Infrastructure Security Agency (CISA) added this flaw to the "Known Exploited Vulnerabilities Catalog" was May 4, 2022. Whether it was used in a ransomware campaign is listed as "Unknown" (U.S. CISA Known Exploited Vulnerabilities Catalog). The criterion for getting on this list is credible evidence that it was actually exploited, and exploitation here includes both attempts and successes (U.S. CISA Known Exploited Vulnerabilities Catalog). The finders' "don't know" of 2014 and this 2022 listing are 8 years apart in time. The listing does not tell you when, who, or how much was exploited, and the entry has no such information.

There is no document pointing out who exploited it.

While there are records that attack attempts occurred, none of the documents this article relies on state what or how much leaked.

The answer to the money question is also open. In a study interviewing maintainers and sponsors of an open-source project that receives government research funds, corporate sponsorships, and small donations together, public funds and private funds each brought their own benefits and drawbacks (DOI: 10.1145/3678884.3681844). Which funding method is right for maintaining foundational software is not decided by a single case study.

Significance — From $2,000 a Year in Donations to Enough for Two Full-Time Staff

Money moved after the incident. According to Marquardt, during the week following the incident about 200 donations—mostly $5 to $10 ones—came in, totaling about $9,000, and he wrote that this was nowhere near enough to sustain the personnel to maintain software this complex and vital (Writing by the OpenSSL Foundation President). On April 24, 2014, the non-profit consortium Linux Foundation announced the formation of the Core Infrastructure Initiative (CII), calling it the industry's collective response to the Heartbleed crisis. Founding sponsors included Amazon Web Services, Cisco, Google, IBM, Intel, Microsoft, and others (Linux Foundation Announcement). The scale was in the millions of dollars, supporting grants for core developers to work full-time, security audits, and testing infrastructure, and the first target for review was OpenSSL (Linux Foundation Announcement). The Linux Foundation stated that it would change the approach of reaching out after a crisis to one of proactively attending to the needs of the most critical projects (Linux Foundation Announcement).

On May 29, the first recipients were announced. They were NTP for time synchronization, OpenSSH for remote access, and OpenSSL. According to the announcement, OpenSSL would receive funding for two full-time core developers, and separately, the Open Crypto Audit Project (OCAP) would receive funding for a security audit of the OpenSSL code (Linux Foundation Announcement). The one full-time person Marquardt mentioned right after the incident and these two positions are two numbers from different points in time.

Heartbleed was a flaw where a single boundary check was missing, and the parties involved and the industry pointed together to a structure that lacked the people and money to find such flaws. The fixed version came out on the day it was disclosed, but getting new certificates and revoking the old ones was still mostly unfinished even three weeks after the disclosure. None of the documents this article relies on state what actually leaked.

What remained to be done even after the fixes in this incident were keys and name tags. How those keys and name tags are structured is covered in "Keys and Locks — Why a Public Key Is Safe to Publish". The story of how a small component hidden inside various programs remains long after a patch continues in "The Log4j Vulnerability — Who Finds the Part Buried in the Wall?", and the story of the maintainer's burden and years of built-up trust continues in "The xz Utils Backdoor — Years of Built-Up Trust, Caught by a Slow Login".

Incident Materials

  • "OpenSSL Security Advisory [07 Apr 2014] — TLS heartbeat read overrun (CVE-2014-0160)" (2014-04-07) — https://www.openssl.org/news/secadv/20140407.txt — Official notice by the maintenance side. A one-line summary of the flaw (missing bounds check, up to 64k), affected versions, discovery and fix credits, and the fixed version 1.0.1g.
  • "The Heartbleed Bug" (Published 2014-04-07, last updated 2025-03-07) — https://heartbleed.com/ — Commentary by discoverer Codenomicon (a security testing company). Independent discovery and disclosure timeline, four types of data leakage, recovery procedures, scope of impact, "unknown" status of exploitation, and suggestions for preventing recurrence.
  • "CVE-2014-0160" (Registered 2014-04-07, last modified 2026-06-17) — https://nvd.nist.gov/vuln/detail/CVE-2014-0160 — National Vulnerability Database (NVD) entry by the U.S. National Institute of Standards and Technology (NIST). Official description (buffer over-read), severity score, and weakness classification.
  • "VU#720951 - OpenSSL TLS heartbeat extension read overflow discloses sensitive information" (Published 2014-04-07, last updated 2016-05-13) — https://www.kb.cert.org/vuls/id/720951 — Vulnerability note by the CERT Coordination Center. Impact and solution, recommendations for key regeneration and revocation, and vendor notification history.
  • "CISA Catalog of Known Exploited Vulnerabilities" CVE-2014-0160 entry and listing criteria (Listed 2022-05-04) — https://www.cisa.gov/known-exploited-vulnerabilities — List of exploited vulnerabilities by the U.S. Cybersecurity and Infrastructure Security Agency (CISA). Listing date, deadline for remediation, ransomware usage status, and "reliable evidence of exploitation" criteria.
  • "Of Money, Responsibility, and Pride" (2014-04-12) — http://veridicalsystems.com/blog/of-money-responsibility-and-pride/ — Personal post by Steve Marquess, representative of the OpenSSL Software Foundation. The party's perspective on donations, personnel, and financial structure.
  • "Amazon Web Services, Cisco, Dell, Facebook, Fujitsu, Google, IBM, Intel, Microsoft, NetApp, Rackspace, VMware and The Linux Foundation Form New Initiative to Support Critical Open Source Projects" (2014-04-24) — http://web.archive.org/web/20140425124353/http://www.linuxfoundation.org/news-media/announcements/2014/04/amazon-web-services-cisco-dell-facebook-fujitsu-google-ibm-intel — Announcement of the formation of the Linux Foundation's Core Infrastructure Initiative (CII).
  • "The Linux Foundation's Core Infrastructure Initiative Announces New Backers, First Projects to Receive Support and Advisory Board Members" (2014-05-29) — https://www.linuxfoundation.org/press/press-release/the-linux-foundations-core-infrastructure-initiative-announces-new-backers-first-projects-to-receive-support-and-advisory-board-members — CII's first support recipients (NTP, OpenSSH, OpenSSL), funding for two full-time OpenSSL developers, and funding for OCAP's OpenSSL code security audit (scheduled at the time of announcement).

Source Papers

  • "The Matter of Heartbleed" (2014) — DOI: 10.1145/2663716.2663755 — A measurement study right after the incident. Estimated that 24–55% of popular HTTPS sites were vulnerable, tracked patches, analyzed certificate ecosystem impact, detected actual attack attempts, and found that a 150,000-machine notification experiment increased patching by roughly 50%.
  • "Analysis of SSL certificate reissues and revocations in the wake of heartbleed" (2018) — DOI: 10.1145/3176244 — Treating Heartbleed as a natural experiment, showing that over 73% of vulnerable certificates were not reissued and over 87% were not revoked even 3 weeks after public disclosure, with revocations plunging on weekends.
  • "An End-to-End Measurement of Certificate Revocation in the Web's PKI" (2015) — DOI: 10.1145/2815675.2815685 — Raising the problem that certificate revocation frequencies and browser revocation-checking conditions are still not well understood.
  • "Is the Web Ready for OCSP Must-Staple?" (2018) — DOI: 10.1145/3278532.3278543 — Criticizing OCSP for being slow, unstable, soft-failing, and privacy-invasive, and asking whether the entire web is ready for its supplementary mechanism (Must-Staple).
  • "Reliable and Decentralized Certificate Revocation via DNS: The Case for RevDNS" (2025) — DOI: 10.1145/3718958.3754351 — A paper proposing an alternative (RevDNS). Arguing that web PKI revocation has failed profoundly based on 25 years of soft failures, privacy leaks, and instability, and measuring that 62% of revocation responses are served by a single CDN.
  • "SoK: Eternal War in Memory" (2013) — DOI: 10.1109/sp.2013.13 — C/C++ memory errors have been a problem for over 30 years, deployed protections can break, and the primary reason strict mechanisms are not used is performance.
  • "SoftBound" (2009) — DOI: 10.1145/1543135.1542504 — A compile-time transformation adding spatial safety to C. The average execution overhead in full-check mode is 67%.
  • "Risk Assessment of Buffer "Heartbleed" Over-Read Vulnerabilities" (2015) — DOI: 10.1109/dsn.2015.59 — Existing overwrite defenses are mismatched or impractical for over-reads. A simple technique on an auction site test model drastically reduced leakage at a modest cost.
  • "Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs" (2021) — DOI: 10.1145/3466642 — An analysis of 186 Rust memory safety CVEs up to the end of 2020. All memory safety bugs required unsafe code, and many were minor soundness issues.
  • "Is rust used safely by software developers?" (2020) — DOI: 10.1145/3377811.3380413 — Fewer than 30% of libraries used the unsafe annotation, but because of unsafe in call chains, over half could not be fully statically verified.
  • "How do programmers use unsafe rust?" (2020) — DOI: 10.1145/3428204 — Unsafe is mostly simple and well-encapsulated, but used extensively, particularly in interoperation with other languages. The "Rust Hypothesis" is supported only in part.
  • "A Closer Look at the Security Risks in the Rust Ecosystem" (2023) — DOI: 10.1145/3624738 — Out of 433 vulnerabilities in the Rust ecosystem, memory safety and concurrency issues account for nearly two-thirds, with unsafe being significantly more prevalent in vulnerable code.
  • "Translating C to safer Rust" (2021) — DOI: 10.1145/3485498 — Manual translation of C to Rust is grueling; an analysis of the causes of remaining unsafe parts in automatic translators and techniques to eliminate them.
  • "A Messy State of the Union: Taming the Composite State Machines of TLS" (2015) — DOI: 10.1109/sp.2015.39 — Discovered state machine flaws hidden for years in open-source TLS implementations, arguing the need for formal verification.
  • "Underproduction: An Approach for Measuring Risk in Open Source Software" (2021) — DOI: 10.1109/saner50967.2021.00043 — The concept of "underproduction," where labor supply diverges from demand, analyzing 21,902 Debian packages and 461,656 bugs to find widespread underproduction of widely installed parts.
  • "Open Source Software Developers' Views on Public and Private Funding: A Case Study on scikit-learn" (2024) — DOI: 10.1145/3678884.3681844 — The pros and cons of public and private funding seen through 25 interviews with maintainers and sponsors of a single open-source project.
Sources (16)
  • The Matter of HeartbleedDOI 10.1145/2663716.2663755
  • Analysis of SSL certificate reissues and revocations in the wake of heartbleedDOI 10.1145/3176244
  • An End-to-End Measurement of Certificate Revocation in the Web's PKIDOI 10.1145/2815675.2815685
  • Is the Web Ready for OCSP Must-Staple?DOI 10.1145/3278532.3278543
  • Reliable and Decentralized Certificate Revocation via DNS: The Case for RevDNSDOI 10.1145/3718958.3754351
  • SoK: Eternal War in MemoryDOI 10.1109/sp.2013.13
  • SoftBoundDOI 10.1145/1543135.1542504
  • Risk Assessment of Buffer \DOI 10.1109/dsn.2015.59
  • Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEsDOI 10.1145/3466642
  • Is rust used safely by software developers?DOI 10.1145/3377811.3380413
  • How do programmers use unsafe rust?DOI 10.1145/3428204
  • A Closer Look at the Security Risks in the Rust EcosystemDOI 10.1145/3624738
  • Translating C to safer RustDOI 10.1145/3485498
  • A Messy State of the Union: Taming the Composite State Machines of TLSDOI 10.1109/sp.2015.39
  • Underproduction: An Approach for Measuring Risk in Open Source SoftwareDOI 10.1109/saner50967.2021.00043
  • Open Source Software Developers' Views on Public and Private Funding: A Case Study on scikit-learnDOI 10.1145/3678884.3681844
📚 Security Incidents, Dissected — Walking Back Through the Day It Broke, With Documents and Research
1 / 7
  1. 1.Heartbleed and OpenSSL — When One Bounds Check Was Missing
  2. 2.WannaCry and England's Hospitals — A Week at Hospitals That Were Never the Target
  3. 3.The Equifax Breach — After the Theft of Data No One Chose to Hand Over
  4. 4.The Log4j Vulnerability — Who Finds the Part Buried in the Wall?
  5. 5.The Change Healthcare Ransomware Attack — When One Claims Hub Stopped
  6. 6.The xz Utils Backdoor — Years of Built-Up Trust, Caught by a Slow Login
  7. 7.The SKT USIM Breach — When the Phone's ID Card Was Stolen
Next →WannaCry and England's Hospitals — A Week at Hospitals That Were Never the Target

This article is AI-generated from research papers for general information and does not replace professional advice. Spotted an error? Let us know

© 2026 Neokuns (Paperis). Sharing links is welcome; republishing the full text requires prior permission.