|
Just another day at the office started with scanning a web site with a vulnerability scanner. The scan resulted in an unexpected crash in a Microsoft IIS server.
This discovery was really excitinga crash might mean a new IIS vulnerability. Deeper research concluded that we were facing a “dangling pointer bug” and that it could be remotely exploitable for arbitrary code execution.
After a while, an already published advisory of this bug was found on the net. It said that this was a DoS vulnerability and that it couldn’t be exploited for remote code execution. We thought differently.
I started researching, looking for good exploit implementation and information resources about dangling pointers. I felt that such a resource was missing and that there seemed to be a big misconception regarding the importance and impact of dangling pointer bugs.
In this presentation, I will discuss dangling pointer bugs. How they are created, their implications and how they can be exploited for remote arbitrary code execution. I will also discuss recent defense mechanisms meant to block classical vulnerabilities exploits and their slim relevancy to Dangling Pointer bugs.
I will dive into specific implementation details of C++ compilers and windows heap structure and present it all on top of the IIS vulnerability example. I will also explain why this bug is commonly misunderstood and will try to answer questions that are currently unanswered, as there is no informative reading material currently or easily available.
I will conclude with a warning don’t leave this bug dangling as it is just as dangerous as Buffer Overflows.
|