...
- 아래의 malloc.c 코드에 의해 취약성이 발생합니다.
- unsorted bin에 등록된 unsorted chunk의 bk값을 변경하여 victim의 값을 변경할 수 있습니다.
- 변경된 victim의 bk영역에 저장된 값을 bck에 저장합니다.
- 이로 인해 변경된 unsorted chunk의 bk값 + 0x10 영역에 main_arena.bins[0]의 주소값을 에 저장된 값을 저장할 수 있습니다.(line 3511)
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
for (;; ) { int iters = 0; while ((victim = unsorted_chunks (av)->bk) != unsorted_chunks (av)) { bck = victim->bk; ... /* remove from unsorted list */ unsorted_chunks (av)->bk = bck; bck->fd = unsorted_chunks (av); ... } |
Info | ||
---|---|---|
| ||
unsorted_chunks() 함수는 bin[0] 의 주소를 에 저장된 값을 리턴 합니다. |
Example
Files
Panel |
---|
...