Rating: 5.0

Null byte overflow in glibc 2.29.

Use the null byte overflow to change a chunk's size after it's already been freed, which allows you to free it again into a different tcache bin.

Use this as a double free, then do a tcache poisoning attack to overwrite `__free_hook` with `system` for RCE.

Original writeup (https://faraz.faith/2019-10-12-picoctf-2019-heap-challs/#zero_to_hero).