2017/01/15 by Wüstholz, Valentin, Olivo, Oswaldo, Heule, Marijn J. H. +1 · 1 citation
#Cryptography and Security (cs.CR) #FOS: Computer and information sciences #Formal Languages and Automata Theory (cs.FL) #Programming Languages (cs.PL) #Software Engineering (cs.SE)
paper · doi:10.48550/arxiv.1701.04045
In an algorithmic complexity attack, a malicious party takes advantage of the worst-case behavior of an algorithm to cause denial-of-service. A prominent algorithmic complexity attack is regular expression denial-of-service (ReDoS), in which the attacker exploits a vulnerable regular expression by providing a carefully-crafted input string that triggers worst-case behavior of the matching algorithm. This paper proposes a technique for automatically finding ReDoS vulnerabilities in programs. Specifically, our approach automatically identifies vulnerable regular expressions in the program and determines whether an "evil" input string can be matched against a vulnerable regular expression. We have implemented our proposed approach in a tool called REXPLOITER and found 41 exploitable security vulnerabilities in Java web applications.