flawopen.com/Simulators/Heap Use-After-Free

Memory Safety / Linux Kernel SLUB

Интерактивный визуализатор Heap Use-After-Free (UAF)

Интерактивная модель динамической памяти: висячие указатели после kfree(), повторное выделение памяти и повышение привилегий в ядре Linux.

💡 Простое объяснение (ELI5)

Представьте, что вы выехали из гостиничного номера 304, сдали ключ, но оставили себе тайный дубликат. Отель заселяет в номер нового гостя. Ночью вы открываете номер дубликатом и читаете его документы. Этот дубликат ключа — висячий указатель (dangling pointer).

Source Code Diff: Object Lifetime Management

UNPATCHED FLAW: DANGLING POINTER RETENTION WITHOUT ZEROIZATION
// 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 PATCH: ATOMIC NULLIFICATION & MEMZERO
// 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);
    }
}
← Интерактивные симуляторы уязвимостей CVE-2024-1086 Linux Netfilter Teardown →