Use-After-Free
Le use-after-free consiste à déréférencer un pointeur vers une mémoire déjà libérée, ce qui peut permettre de lire des données contrôlées par l'attaquant ou d'aboutir à l'exécution de code.
Objectif
Comprendre la mécanique de la vulnérabilité UAF et ses défenses ; une vulnérabilité de haute gravité courante dans les navigateurs et noyaux écrits en C/C++.
Mécanisme
Après le free, le pointeur n'est pas mis à NULL ; les déréférencements ultérieurs accèdent à la mémoire récupérée. Si un attaquant contrôle ce contenu par heap spraying, il peut falsifier les vtables d'objets pour exécuter du code. Défenses : mise à NULL du pointeur, pointeurs intelligents, isolation du tas.
Cas d’usage
- Analyse de vulnérabilités de navigateurs
- Audit de sécurité du noyau
- Sûreté mémoire