flawopen.com/Simulators/Heap Use-After-Free
Visualiseur Interactif de Heap Use-After-Free (UAF)
Modèle interactif montrant les pointeurs pendants après kfree(), la réallocation de blocs libérés et l'élévation de privilèges dans le noyau Linux.
💡 Explication Simple (ELI5)
Imaginez quitter la chambre 304 d'un hôtel en rendant la carte magnétique, tout en gardant un double secret dans votre poche. La chambre est louée à un nouveau client. Plus tard, vous entrez avec votre double pour fouiller ses affaires. Ce double de clé est un pointeur pendant (dangling pointer).
Source Code Diff: Object Lifetime Management
// Vulnerable cleanup routine
void release_session(struct session_mgr *mgr) {
if (mgr->active_session) {
kfree(mgr->active_session);
// FLAW: mgr->active_session remains dangling!
}
}
// Hardened cleanup routine
void release_session(struct session_mgr *mgr) {
struct user_session *sess;
sess = xchg(&mgr->active_session, NULL);
if (sess) {
memzero_explicit(sess, sizeof(*sess));
kfree(sess);
}
}