在其生命周期之外引用变量有多危险

信息安全 脆弱性 C
2021-08-21 17:28:00

我知道在其生命周期之外引用变量是一种危险的做法,并且可以使某人严重规避程序逻辑。然而,CERT C 编程语言安全编码标准(最后一次编辑于 2007 年)在严重性方面将此称为 3 级漏洞,这意味着它可能导致用户运行任意代码。我想要一个说明如何实现这一点,或者参考一篇解释它的文章。

1个回答

在其生命周期之外使用内存的问题是它的内容可能以意想不到的方式发生了变化。

考虑一个以函数指针作为字段的动态分配结构。如果此内存以某种方式被释放,则下一个内存分配请求可能指向此内存。控制此内存的攻击者可能会将数据放入其中,然后将其解释为指向恶意代码的函数指针。这是任意代码执行的示例。