Finding user/kernel pointer bugs with type inference

  • Authors:
  • Rob Johnson;David Wagner

  • Affiliations:
  • University of California at Berkeley;University of California at Berkeley

  • Venue:
  • SSYM'04 Proceedings of the 13th conference on USENIX Security Symposium - Volume 13
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

Today's operating systems struggle with vulnerabilities from careless handling of user space pointers. User/kernel pointer bugs have serious consequences for security: a malicious user could exploit a user/kernel pointer bug to gain elevated privileges, read sensitive data, or crash the system. We show how to detect user/kernel pointer bugs using type-qualifier inference, and we apply this method to the Linux kernel using CQUAL, a type-qualifier inference tool. We extend the basic type-inference capabilities of CQUAL to support context-sensitivity and greater precision when analyzing structures so that CQUAL requires fewer annotations and generates fewer false positives. With these enhancements, we were able to use CQUAL to find 17 exploitable user/kernel pointer bugs in the Linux kernel. Several of the bugs we found were missed by careful hand audits, other program analysis tools, or both.