Defeating Stack Canaries and Memory Safety with Speculative Execution

After decades fighting memory corruption vulnerabilities, several defenses have been developed to increase the bar for attackers to carry out exploitation. Defenses like control flow integrity (CFI) and stack smashing protector prevent completely the direct use of memory corruptions primitives, and require an attacker to employ bypass techniques to complete an attack. After the introduction of the new class of transient execution attacks, it is natural to wonder how these well established defenses perform in the post-spectre era.

In this talk, we present a sub-class of transient execution attacks, we call SPEAR. This sub-class enables an attacker to repurpose memory corruption primitives that cannot be used in the context of traditional exploitation to achieve arbitrary memory read. In our talk, we discuss how SPEAR change the game in three main use-cases: control flow integrity (CFI), memory safety languages and stack smashing protectors (SSP) . We present our end-2-end attack in which we achieve information leakage through a SPEAR attack against a buffer overflow mitigated by SSP in libpng. We also present the first application of speculative ROP in an real world attack and discuss its differences with traditional ROP.

 
 

Andrea Mambretti

Andrea Mambretti is a system security researcher at the IBM Research Zurich laboratory. He holds a PhD in Cybersecurity from Northeastern University, and a Bachelor's and a Master's degree in Computer Engineering from Politecnico di Milano.
His research interests lie in systems and hardware security. His work has been published in top academic conferences such as IEEE S&P, NDSS, ACSAC, EuroS&P and RAID, as well as presented at top industry conferences such as Black Hat and PacSec.

 
 

Anil Kurmus

Anil Kurmus is a security researcher at the IBM Research Zurich laboratory. His interests are mainly on systems security, software security, operating systems as well as CPU microarchitecture, both in terms of offensive and defensive research. He holds a PhD degree (Dr.-Ing) from Technische Universitat Braunschweig (2014), and a Master's degree (Diplome d'Ingenieur) from Telecom ParisTech (2009). Since 2019, he is sub-theme lead at IBM Research, leading various challenges working on system security. His work has received an ACSAC best paper award and been published in major systems security conferences, where he has also been a member of the program committees (such as ACM CCS 21, IEEE S&P 22, USENIX Security 21/22). He is also the author of several patents on systems security.

Previous
Previous

The printer goes brrrr

Next
Next

Launching EMUX - A framework for emulating ARM and MIPS IoT Devices