Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 527

堆溢出

审核人Cybersecurity entrepreneur & security researcher

堆溢出 是什么?

堆溢出发生在动态分配内存中的缓冲区溢出,常破坏分配器元数据、函数指针或对象虚表。


堆溢出是指写入超出堆上分配缓冲区末尾,损坏相邻的内存块或 malloc/free、jemalloc、mimalloc 等分配器的元数据。由于堆布局并非确定性,利用通常需要堆 grooming 或 "feng shui" 来将函数指针、虚表、智能指针控制块、关键状态等可用目标置于易受攻击缓冲区附近。现代分配器通过加固元数据、隔离块、添加守护页等方式提高难度,而 ASLR、CFI、沙箱和内存安全语言进一步降低影响。堆溢出在浏览器、内核与文档解析器利用中处于核心地位,Pwn2Own 上不乏获奖案例。

示例

  1. 01

    CVE-2018-4407:XNU 内核 TCP 堆溢出。

  2. 02

    Pwn2Own 上多次出现的 Chrome JavaScript 引擎堆溢出。

常见问题

堆溢出 是什么?

发生在动态分配内存中的缓冲区溢出,常破坏分配器元数据、函数指针或对象虚表。 它属于网络安全的 漏洞 分类。

堆溢出 是什么意思?

发生在动态分配内存中的缓冲区溢出,常破坏分配器元数据、函数指针或对象虚表。

如何防御 堆溢出?

针对 堆溢出 的防御通常结合技术控制与运营实践,详见上方完整定义。

堆溢出 还有哪些其他名称?

常见的别称包括: 堆缓冲区溢出。

相关术语

另见