• 0%
    0 votes
  • Rate this episode
    What did you think?
  • 1
    watcher
  • 2
    plays
  • 12
    collected

Chaos Communication Congress: Season 34

34x167 Type confusion: discovery, abuse, and protection

  • 2017-12-30T00:00:00Z
  • 1h
  • English
Speaker: gannimo Type confusion, often combined with use-after-free, is the main attack vector to compromise modern C++ software like browsers or virtual machines. Typecasting is a core principle that enables modularity in C++. For performance, most typecasts are only checked statically, i.e., the check only tests if a cast is allowed for the given type hierarchy, ignoring the actual runtime type of the object. Using an object of an incompatible base type instead of a derived type results in type confusion. Attackers have been abusing such type confusion issues to compromise popular software products including Adobe Flash, PHP, Google Chrome, or Firefox, raising critical security concerns. We discuss the details of this vulnerability type and how such vulnerabilities relate to memory corruption. Based on an LLVM-based sanitizer that we developed, we will show how to discover such vulnerabilities in large software through fuzzing and how to protect yourself against this class of bugs.
Loading...