Kernel Stack Overflows Elimination

Kernel Stack Overflows Elimination

Yair Wiseman (Bar-Ilan University, Israel), Joel Isaacson (Ascender Technologies, Israel), Eliad Lubovsky (Bar-Ilan University, Israel) and Pinchas Weisberg (Bar-Ilan University, Israel)
DOI: 10.4018/978-1-60566-850-5.ch001
OnDemand PDF Download:
No Current Special Offers


The Linux kernel stack has a fixed size. There is no mechanism to prevent the kernel from overflowing the stack. Hackers can exploit this bug to put unwanted information in the memory of the operating system and gain control over the system. In order to prevent this problem, the authors introduce a dynamically sized kernel stack that can be integrated into the standard Linux kernel. The well-known paging mechanism is reused with some changes, in order to enable the kernel stack to grow.
Chapter Preview

Virtual Memory

In yesteryears, when a computer program was too big and there was no way to load the entire program into the memory, the overlays technique was used. The programmer had to split the program into several portions that the memory could contain and that can be executed independently. The programmer also was in charge of putting system calls that could replace the portions in the switching time.

With the aim of making the programming work easier and exempting the programmer from managing the portions of the memory, the virtual memory systems have been created. Virtual memory systems automatically load the memory portions that are necessary for the program execution into the memory. Other portions of the memory that are not currently needed are saved in a second memory and will be loaded into the memory only if there is a need to use them.

Complete Chapter List

Search this Book: