Evil Pickles: DoS Attacks Based on Object-Graph Engineering

Date

Authors

Dietrich, Jens
Jezek, Kamil
Rasheed, Shawn
Tahir, Amjed
Potanin, Alex

Journal Title

Journal ISSN

Volume Title

Publisher

Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing

Access Statement

Research Projects

Organizational Units

Journal Issue

Abstract

In recent years, multiple vulnerabilities exploiting the serialisation APIs of various programming languages, including Java, have been discovered. These vulnerabilities can be used to devise injection attacks, exploiting the presence of dynamic programming language features like reflection or dynamic proxies. In this paper, we investigate a new type of serialisation-related vulnerabilities for Java that exploit the topology of object graphs constructed from classes of the standard library in a way that deserialisation leads to resource exhaustion, facilitating denial of service attacks. We analyse three such vulnerabilities that can be exploited to exhaust stack memory, heap memory and CPU time. We discuss the language and library design features that enable these vulnerabilities, and investigate whether these vulnerabilities can be ported to C#, Java- Script and Ruby. We present two case studies that demonstrate how the vulnerabilities can be used in attacks on two widely used servers, Jenkins deployed on Tomcat and JBoss. Finally, we propose a mitigation strategy based on contract injection.

Description

Citation

Source

Book Title

31st European Conference on Object-Oriented Programming, ECOOP 2017

Entity type

Publication

Access Statement

License Rights

Restricted until