Introduction
Overview
Heartbleed was a severe vulnerability in OpenSSL, disclosed in April 2014, which allowed attackers to read arbitrary memory from affected servers. The bug was introduced in OpenSSL version 1.0.1 through a flaw in the implementation of the TLS heartbeat extension. It impacted about 17% of the Internet's secure web servers at the time, including major websites and hardware like routers. The vulnerability existed unnoticed for over two years, exposing sensitive data such as passwords, personal information, and private cryptographic keys.
Vulnerability Details
Heartbleed occurred due to a missing bounds check in the TLS heartbeat extension. Attackers could exploit the bug by sending a malicious heartbeat request with a payload size larger than the actual payload. The server would then respond with the payload plus extra data from memory. This leaked memory could include sensitive information like usernames, passwords, SSL private keys, and more. The fix involved adding a simple bounds check to validate the length of the request. This incident demonstrated that even widely used open source software can have critical vulnerabilities, and it sparked a major global response urging system administrators to upgrade OpenSSL and revoke potentially compromised certificates.
Learning Objectives
- Describe the OpenSSL Heartbleed Vulnerability from 2014
- Explain the vulnerability code and how to fix the vulnerability
- Explain Zero-Day Vulnerability