AVR LIBC House of Spirit

In this paper, I introduce the reader to a heap metadata corruption against the latest version of avr-libc. This allocator is used in embedded systems, Arduino, and the Internet of Things (IoT). In the House of Spirit, an attacker passes a pointer to a fake chunk header to the free API. This chunk can be of almost arbitrary size. The allocator will subsequently insert this fake chunk into the global freelist. The next malloc of the appropriate size will return the fake chunk which may overlap data that may be of benefit to the attacker.

AVR LIBC House of Spirit.PDF


Popular posts from this blog

C++ Memory Corruption (std::vector) - part 2

Pointer Compression in V8

Linux Kernel Stack Smashing