【24h】

A New Class of Buffer Overflow Attacks

机译:新型的缓冲区溢出攻击

获取原文

摘要

In this paper, we focus on a class of buffer overflow vulnerabilities that occur due to the "placement new'' expression in C++. "Placement new'' facilitates placement of an object/array at a specific memory location. When appropriate bounds checking is not in place, object overflows may occur. Such overflows can lead to stack as well as heap/data/bss overflows, which can be exploited by attackers in order to carry out the entire range of attacks associated with buffer overflow. Unfortunately, buffer overflows due to "placement new'' have neither been studied in the literature nor been incorporated in any tool designed to detect and/or address buffer overflows. In this paper, we show how the "placement new'' expression in C++ can be used to carry out buffer overflow attacks -- on the stack as well as heap/data/bss. We show that overflowing objects and arrays can also be used to carry out virtual table pointer subterfuge, as well as function and variable pointer subterfuge. Moreover, we show how "placement new" can be used to leak sensitive information, and how denial of service attacks can be carried out via memory leakage.
机译:在本文中,我们重点介绍由于C ++中的“ placement new”表达式而发生的一类缓冲区溢出漏洞,“ Placement new”有助于将对象/数组放置在特定的内存位置。如果没有适当的边界检查,则可能会发生对象溢出。这样的溢出可能导致堆栈以及堆/数据/ bss溢出,攻击者可以利用这些溢出来执行与缓冲区溢出相关的整个攻击范围。不幸的是,由于“ placement new”导致的缓冲区溢出尚未在文献中进行研究,也未纳入任何旨在检测和/或解决缓冲区溢出问题的工具中。可用于对堆栈以及堆/数据/ bss进行缓冲区溢出攻击。我们表明,溢出的对象和数组还可以用于执行虚拟表指针替换,以及函数和变量指针替换。此外,我们展示了如何使用“ placement new”来泄漏敏感信息,以及如何通过内存泄漏来进行拒绝服务攻击。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利