Escape From Return-Oriented Programming: Return-oriented Programming without Returns (on the x86)
Skip to main content
eScholarship
Open Access Publications from the University of California

Escape From Return-Oriented Programming: Return-oriented Programming without Returns (on the x86)

Abstract

We show that on the x86 it is possible to mount a return-oriented programming attack without using any return instructions. Our new attack instead makes use of certain instruction sequences that behave like a return; we show that these sequences occur with sufficient frequency in large Linux libraries to allow creation of a Turing-complete gadget set. Because it does not make use of return instructions, our new attack has negative implications for two recently proposed classes of defense against return oriented programming: those that detect the too- frequent use of returns in the instruction stream, and those that detect violations of the last-in, first-out invariant that is normally maintained for the return-address stack.

Pre-2018 CSE ID: CS2010-0954

Main Content
For improved accessibility of PDF content, download the file to your device.
Current View