越界读取
越界读取 是什么?
越界读取一种内存安全缺陷(CWE-125),程序读取了预定缓冲区之外的字节,导致相邻内存内容被泄露。
越界读取(OOB read)发生在程序使用攻击者可控的索引、长度或指针,读取了缓冲区起始之前或结束之后的字节。泄露的数据可能包含加密密钥、会话令牌、能击穿 ASLR 的指针,或其他进程机密。最经典的例子是 OpenSSL 中的 Heartbleed(CVE-2014-0160):TLS 心跳信任了攻击者提供的长度,响应中最多返回 64KB 进程内存。OOB 读取归类为 CWE-125,常与独立的写入原语结合以实现完整的代码执行。缓解措施包括带边界检查的 API、内存安全语言(Rust、现代 C++)、消毒器(ASan、KASAN)、模糊测试以及硬件标签(MTE)。
● 示例
- 01
Heartbleed(CVE-2014-0160):OpenSSL TLS 心跳泄露最多 64KB 进程内存。
- 02
图片解析器越过 chunk 大小字段继续读取,把可识别的像素返回到 API 响应中。
● 常见问题
越界读取 是什么?
一种内存安全缺陷(CWE-125),程序读取了预定缓冲区之外的字节,导致相邻内存内容被泄露。 它属于网络安全的 攻击与威胁 分类。
越界读取 是什么意思?
一种内存安全缺陷(CWE-125),程序读取了预定缓冲区之外的字节,导致相邻内存内容被泄露。
越界读取 是如何工作的?
越界读取(OOB read)发生在程序使用攻击者可控的索引、长度或指针,读取了缓冲区起始之前或结束之后的字节。泄露的数据可能包含加密密钥、会话令牌、能击穿 ASLR 的指针,或其他进程机密。最经典的例子是 OpenSSL 中的 Heartbleed(CVE-2014-0160):TLS 心跳信任了攻击者提供的长度,响应中最多返回 64KB 进程内存。OOB 读取归类为 CWE-125,常与独立的写入原语结合以实现完整的代码执行。缓解措施包括带边界检查的 API、内存安全语言(Rust、现代 C++)、消毒器(ASan、KASAN)、模糊测试以及硬件标签(MTE)。
如何防御 越界读取?
针对 越界读取 的防御通常结合技术控制与运营实践,详见上方完整定义。
越界读取 还有哪些其他名称?
常见的别称包括: 越界读。