Skip to main content

Research Repository

Advanced Search

Control-Flow Integrity: Attacks and Protections

Sayeed, Sarwar; Marco-Gisbert, Hector; Ripoll, Ismael; Birch, Miriam


Sarwar Sayeed

Hector Marco-Gisbert

Ismael Ripoll

Miriam Birch


Despite the intense efforts to prevent programmers from writing code with memory errors, memory corruption vulnerabilities are still a major security threat. Consequently, control-flow integrity has received significant attention in the research community, and software developers to combat control code execution attacks in the presence of type of faults. Control-flow Integrity (CFI) is a large family of techniques that aims to eradicate memory error exploitation by ensuring that the instruction pointer (IP) of a running process cannot be controlled by a malicious attacker. In this paper, we assess the effectiveness of 14 CFI techniques against the most popular exploitation techniques, including code reuse attacks, return-to-user, return-to-libc, and replay attacks. We also classify these techniques based on their security, robustness, and implementation complexity. Our study indicates that the majority of the CFI techniques are primarily focused on restricting indirect branch instructions and cannot prevent all forms of vulnerability exploitation. We conclude that the performance overhead introduced, jointly with the partial attack coverage, is discouraging the industry from adopting most of them.

Journal Article Type Article
Acceptance Date Oct 3, 2019
Online Publication Date Oct 10, 2019
Publication Date 2019
Deposit Date Feb 1, 2022
Publicly Available Date Feb 1, 2022
Journal Applied Sciences
Publisher MDPI
Peer Reviewed Peer Reviewed
Volume 9
Issue 20
Article Number 4229
Keywords CFI protections; CFI attacks; memory errors; security; exploitation
Public URL


You might also like

Downloadable Citations