Jonathan Afek and Adi Sharabani of Watchfire Inc. are reporting that they have discovered a reliable method for exploiting a common programming error, dangling pointers, which until now had been considered simply a quality problem. If true this could be a major problem for hundreds if not thousands of existing programs. Jonathan and Adi found the method for remotely exploiting dangling pointers while executing the company's AppScan software against a Web server. The web server crashed in the middle of the scan and upon investigation, a dangling pointer was found, not too surprising, as this is a common programming mistake, especially in C++. The pair also found they could reproduce the error by sending a specially crafted URL to the server. Next they began looking for a way to run their own code on the target machine using the dangling pointer as a starting point. Unfortunately they were successful. In August, Jonathan Afek, will present the technique he and Adi developed for exploiting the dangling pointer at the Black Hat Briefings in Las Vegas. The technique involves using generic dangling pointers to run their own shell code, and is said to work with any application in which there is a dangling pointer. Since there are hundreds perhaps thousands of applications in production with this type of error, this is a very scary discovery and application testing just got a whole lot more difficult and a whole lot more important. It is a whole new class of bugs to look for, on the same order as SQL Injection or Buffer Overflow. Thousand of existing production programs will need to be retested for vulnerability to this type of exploit. Microsoft, of Redmond, Wash., addresses the problem in IIS with one of the July security bulletins, MS07-041 . It should be pointed out that dangling pointers occur primarily in lower level languages and some languages such as Java are not vulnerable to this exploit because they have automatic mechanisms for deallocating memory. For additional information on this error take a look at SearchSecurity.com's article: New hacking technique exploits common programming error Now what do we do with all our existing applications? Test'm?
Steven S. Ashley