CyberGlossary

漏洞

栈溢出漏洞

别称: 栈缓冲区溢出, 栈破坏

定义

发生在程序栈上的缓冲区溢出,通常会覆盖保存的返回地址或局部函数指针以重定向执行。

栈溢出漏洞是内存破坏类利用的历史原型:在未经检查的写入下,栈上分配的缓冲区被越界写入,进而覆盖函数保存的帧指针或返回地址,攻击者就可以将控制流重定向至受控字节(shellcode 或 ROP 链)。防御措施包括栈金丝雀(StackGuard、/GS)、不可执行栈(DEP/NX)、地址空间布局随机化(ASLR)、影子栈、Intel CET,以及编译器层的 FORTIFY_SOURCE 和更安全的字符串处理。尽管经过数十年缓解,经典栈溢出仍频繁出现在固件、IoT 和遗留软件中,持续出现在 CVE 与 CTF 题目中。

示例

  • CVE-2003-0352(DCOM RPC):Blaster 蠕虫利用栈溢出。
  • CVE-2019-0708(BlueKeep):远程桌面服务栈溢出。

相关术语