when heap overflow

heap overflow가 일어나면 은근히 할 수 있는게 많다.

일단, 다음 heap chunk의 사이즈 필드를 바꿀 수 있다. 이러면 이 chunk를 free 할때 원하는 크기의 chunk로 할 수 있고 이는 unsorted bin libc leak이나, 원하는 tcache에 넣을 수 도 있다. 그리고 여기서 다음 free된 청크의 정보들도 overflow로 읽을 가능성이 생긴다.

또한 다음 chunk의 값을 덮을 수 있는데 이는 논리적인 취약점으로 이끌 수 있다.

예를 들어 다음 chunk의 포인터 변수가 있었다면, 해당 변수를 덮는다면 임의 위치 읽기 혹은 쓰기 혹은 control flow도 바꿀 수 있게 된다.