Use-After-Free
ইউজ-আফটার-ফ্রি
free() হওয়া heap memory-র dangling pointer পরে ব্যবহার করা — reused slot অন্য object-এর attacker-controlled data ধরে বসে থাকতে পারে।
also: uaf
p = malloc(...); fill(p, "safe");
free(p); // memory মুক্ত, কিন্তু p এখনো পুরনো address ধরে
q = malloc(...); // allocator p-র slot-ই reuse করতে পারে, attacker-controlled data
*p // stale reference — এখন q-র data পড়ছে, নিজের নয়
- Memory wipe হয় না free()-এ, শুধু “available” চিহ্নিত হয় — reuse হলে type confusion-এর জন্ম, এখানেই exploitation primitive
- Browser/kernel-এ আজকের dominant vulnerability class — stack mitigation পরিণত হওয়ার পর attacker heap-এ সরে গেছে
- ভাষা-স্তরের fix: Rust-এর ownership/borrow checker compile-time-এ dangling reference-ই তৈরি হতে দেয় না