개요

Use after free 버그는 Free된 버그에 Access가 일어나서, 예측하지 못한 행동이 프로그램에 일어나는 버그를 말한다. 간단한 개념에 쉬운 작동방식을 가지고 있지만, UAF버그는 많은 사용 프로그램에서 지속적으로 발생하며, 발생할 경우 치명적인 영향을 프로그램에 미칠수도 있는 버그이다.

실제로 UAF버그는 매우 복잡한 환경에서 일어난다.

  • 많은 경우 Allocation, 메모리 대입, 그리고 Dereference는 다른 함수 혹은 다른 프로그램 모듈, 공유 메모리에서 일어난다.
  • 이러한 버그는 또한 Thread accross하게 일어나는 경우가 많다.
  • Event-driven방식 혹은 Object-oriented programming은 위와 같은 환경을 매우 빈번하게 사용한다.

이러한 이유로 인해서, Chromium browser에서 UAF버그는 2011-2013년에서 680건이나 발생한 것처럼, 매우 Mature한 프로그램에서도 빈번하게 일어나는 버그이다.