Chunk Extension/Overlapping — Chevauchement de chunks

Heap glibc

Principe

En corrompant le champ size d'un chunk, on fait croire à malloc qu'il est plus grand qu'il ne l'est, créant un chevauchement (overlapping) avec le chunk voisin. On peut alors lire/écrire dans les métadonnées ou données d'un chunk encore en usage.

Exploitation

# 1. Overflow du chunk A -> agrandir A->size pour englober B
# 2. free(A) puis malloc(grande_taille) renvoie une zone
#    qui recouvre B (toujours alloué)
# 3. Écrire dans ce chunk modifie les données/pointeurs de B
# Utile pour forger des pointeurs (UAF-like) et pivoter

Usage

Souvent combinée avec d'autres primitives pour transformer un simple overflow heap en lecture/écriture contrôlée. Le contrôle des tailles et de l'ordre des free/malloc (heap feng shui) est déterminant.