
Heartbleed 是 CVE-2014-0160 的俗称,是 OpenSSL 的 TLS 心跳扩展中的一个严重漏洞。
它允许远程攻击者无需认证即可从易受攻击的服务器每次请求读取最多 64 KB 的内存。
这泄露了以下敏感信息:
OpenSSL 实现了 TLS 协议,用于保护 HTTPS 连接。
漏洞存在于 心跳扩展 中,该功能旨在:
保持 TLS 连接活跃,无需重新协商加密。
正常的心跳流程如下:
客户端 → 服务器:“我发送 10 个字节。”
服务器 → 客户端:“这里是你的 10 个字节。”
漏洞是 OpenSSL 心跳实现中 缺少边界检查。
如果恶意客户端发送:
“我正在发送 1 个字节,但我声称是 64,000 个字节。”
服务器会信任长度字段,并回复:
1 个字节 + 相邻内存的 63,999 个字节。
相邻内存中可能包含机密信息。
Heartbleed 影响了:
| 软件 | 状态 |
|---|---|
| OpenSSL 1.0.1 – 1.0.1f | ❌ 易受攻击 |
| OpenSSL 1.0.1g | ✅ 已修补 |
| OpenSSL 1.0.0 & 0.9.8 | ✅ 不受影响 |
如果私有密钥被盗,攻击者可以:
升级到:
OpenSSL 1.0.1g
仅升级 OpenSSL 是不够的,如果密钥已经泄露。
| 日期 | 事件 |
|---|---|
| 2012 年 | 漏洞引入 |
| 2014 年 4 月 7 日 | 公开披露 |
| 同一天 | 补丁发布 |
| 随后的几周 | 全球大规模修复 |
| 漏洞 | 类型 | 影响 |
|---|---|---|
| Heartbleed | 内存泄露 | 数据泄露 |
| Log4Shell | 远程代码执行 | 服务器沦陷 |
| Shellshock | 命令注入 | 远程执行 |
Heartbleed 并不直接执行代码——但它暴露了机密信息,这些信息可被用于发动毁灭性的二次攻击。
| 字段 | 值 |
|---|---|
| 名称 | Heartbleed |
| CVE | CVE-2014-0160 |
| 类型 | 内存泄露 |
| 受影响软件 | OpenSSL |
| 严重性 | 严重 |
| 补丁可用 | 是 |
| 每次请求最大泄露量 | 64 KB |
Heartbleed 仍是互联网历史上最臭名昭著的安全漏洞之一。
它展示了在关键加密库中一个缺失的边界检查如何影响全球数百万台系统。