# An In-Depth Survey of Bypassing Buffer Overflow Mitigation Techniques
## 1 Introduction  
The computing systems these days are largely dependent on ever evolving hardware infrastructure as well as Internet, that is result is making code complex. Usually these increasing code complexities results in vulnerabilities [1]. These vulnerabilities may go unnoticed for years and may cause significant damage. Programmers tend to make mistakes or build on other programmers' mistakes due to a lack of time, awareness, and dependence on old code [2]. It has been reported and exploited that there are numerous types of software vulnerabilities, including SQL injection, Cross-site scripting, Buffer overflow, Race condition, Integer overflow, OS command injection, missing authentication, and path traversal [3]. Even the slightest vulnerability in software can lead to financial, intellectual, or data loss. For instance, a hack of a SWIFT code has cost the US 81 million USD to Bangladesh's central bank [4]. The Home Depot data breach in 2014 exposed 56 millioncredit and debit cards information [5]. The Equifax data breach affected approximately 147 million individuals in 2017 [6]. These attacks and research suggest that these vulnerabilities may lead to data loss, financial losses, and in some cases even death. Specifically, this study focuses on buffer overflow (BOF), a vulnerability that is thirty years old yet is still causing the most security breaches among all of the existing vulnerabilities.  
To date, buffer overflow has been identified as the most common and dangerous security breach. Cowan named it the \"vulnerability of the decade\" (1988-1998), because it was the leading cause of security breaches following its discovery [7]. According to the Common Vulnerabilities and Exposures (CVE) list of 2019, it was the most frequently reported vulnerability, with more than 400 reported vulnerabilities [8]. As of May 2021, the number of reported buffer overflow vulnerabilities in the CVE database has reached over 13,700 [9]. Figure 1 illustrates the CVE statistics of buffer overflow vulnerabilities, showing an apparent increase in vulnerabilities over time.  
There are number of security breaches that happened due to buffer overflow vulnerability, Tables 1 and 2 list few of the most prominent attacks.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Exploits** & **Vulnerable Software** & **Targeted OS** & **Year** & **Infected Hosts** & **Scan Rate** \\ \hline Morris Worm & Finger Service Exploited & BSD UNIX (VAX OS) & 1988 & 6000 & — \\ Code Red Worm & Microsoft IIS Server & Microsoft Windows (2000, XP server) & 2001 & 359,000 apprx & 2000 scans/60 s \\ Slammer Worm & Microsoft SQL & Microsoft Windows & 2003 & 75000 & 55 million scans/s \\  & server/Desktop engine & Remote procedure call & Microsoft Windows (XP, 2000, NT) & 2003 & 100,000 & 500 scans/h \\  & Local security authority & Microsoft Windows & & & \\ Sasser Worm & subsystem service & (2000, XP) & 2004 & 500,000 & — \\  & (LSASS) & Microsoft Windows & 2008 & 15 million & — \\ Conficker Worm & Siemens Step7 & Microsoft Windows & 2010 & 30,000 & — \\ Flame Worm & Windows Update Service & Microsoft Windows & 2012 & 1000 & — \\ Triton Malware & Triconex SIS controller & Microsoft Windows & 2017 & — & — \\ \hline \hline \end{tabular}
\end{table}
Table 1: Most Prominent Attacks Caused by BOF.  
Figure 1: Buffer Overflow Statistics in CVE.