UAF Kernel — Use-After-Free dans le noyau

Kernel Heap

Principe

Un Use-After-Free kernel exploite un objet libéré mais encore référencé. En réallouant l'emplacement avec un objet contrôlé (heap spray kernel via des structures de taille choisie), on contrôle des champs critiques — souvent des pointeurs de fonction.

Exploitation (slab/kmalloc)

# 1. Allouer l objet vulnérable (kmalloc-N)
# 2. Le libérer tout en gardant une référence (dangling)
# 3. Réallouer le slot avec un objet contrôlé de même taille
#    (ex: msg_msg, sk_buff, tty_struct, setxattr...)
# 4. Déclencher l usage du pointeur corrompu -> RIP control
# 5. ROP kernel -> commit_creds(prepare_kernel_cred(0))

Heap spray kernel

Le choix de l'objet de réallocation ("elastic object") est central : il doit avoir la bonne taille (cache kmalloc) et un champ exploitable. Mitigations : CONFIG_SLAB_FREELIST_HARDENED, isolation des caches (kmalloc-cg), KASAN pour la détection en dev.