Gollum: modular and greybox exploit generation for heap overflows in interpreters

We present the first approach to automatic exploit generation for heap overflows in interpreters. It is also the first approach to exploit generation in any class of program that integrates a solution for automatic heap layout manipulation. At the core of the approach is a novel method for discoveri...

Full description

Bibliographic Details
Main Authors: Heelan, S, Melham, T, Kroening, D
Format: Conference item
Published: ACM Digital Library 2019
_version_ 1826265304662016000
author Heelan, S
Melham, T
Kroening, D
author_facet Heelan, S
Melham, T
Kroening, D
author_sort Heelan, S
collection OXFORD
description We present the first approach to automatic exploit generation for heap overflows in interpreters. It is also the first approach to exploit generation in any class of program that integrates a solution for automatic heap layout manipulation. At the core of the approach is a novel method for discovering exploit primitives—inputs to the target program that result in a sensitive operation, such as a function call or a memory write, utilizing attacker-injected data. To produce an exploit primitive from a heap overflow vulnerability, one has to discover a target data structure to corrupt, ensure an instance of that data structure is adjacent to the source of the overflow on the heap, and ensure that the post-overflow corrupted data is used in a manner desired by the attacker. Our system addresses all three tasks in an automatic, greybox, and modular manner. Our implementation is called GOLLUM, and we demonstrate its capabilities by producing exploits from 10 unique vulnerabilities in the PHP and Python interpreters, 5 of which do not have existing public exploits.
first_indexed 2024-03-06T20:21:35Z
format Conference item
id oxford-uuid:2df77994-1bcf-4ae8-85a1-5619191fe829
institution University of Oxford
last_indexed 2024-03-06T20:21:35Z
publishDate 2019
publisher ACM Digital Library
record_format dspace
spelling oxford-uuid:2df77994-1bcf-4ae8-85a1-5619191fe8292022-03-26T12:46:17ZGollum: modular and greybox exploit generation for heap overflows in interpretersConference itemhttp://purl.org/coar/resource_type/c_5794uuid:2df77994-1bcf-4ae8-85a1-5619191fe829Symplectic Elements at OxfordACM Digital Library2019Heelan, SMelham, TKroening, DWe present the first approach to automatic exploit generation for heap overflows in interpreters. It is also the first approach to exploit generation in any class of program that integrates a solution for automatic heap layout manipulation. At the core of the approach is a novel method for discovering exploit primitives—inputs to the target program that result in a sensitive operation, such as a function call or a memory write, utilizing attacker-injected data. To produce an exploit primitive from a heap overflow vulnerability, one has to discover a target data structure to corrupt, ensure an instance of that data structure is adjacent to the source of the overflow on the heap, and ensure that the post-overflow corrupted data is used in a manner desired by the attacker. Our system addresses all three tasks in an automatic, greybox, and modular manner. Our implementation is called GOLLUM, and we demonstrate its capabilities by producing exploits from 10 unique vulnerabilities in the PHP and Python interpreters, 5 of which do not have existing public exploits.
spellingShingle Heelan, S
Melham, T
Kroening, D
Gollum: modular and greybox exploit generation for heap overflows in interpreters
title Gollum: modular and greybox exploit generation for heap overflows in interpreters
title_full Gollum: modular and greybox exploit generation for heap overflows in interpreters
title_fullStr Gollum: modular and greybox exploit generation for heap overflows in interpreters
title_full_unstemmed Gollum: modular and greybox exploit generation for heap overflows in interpreters
title_short Gollum: modular and greybox exploit generation for heap overflows in interpreters
title_sort gollum modular and greybox exploit generation for heap overflows in interpreters
work_keys_str_mv AT heelans gollummodularandgreyboxexploitgenerationforheapoverflowsininterpreters
AT melhamt gollummodularandgreyboxexploitgenerationforheapoverflowsininterpreters
AT kroeningd gollummodularandgreyboxexploitgenerationforheapoverflowsininterpreters