Foundationপ্রথম নীতি থেকে
LEVEL 10 · Computer Security

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-ই তৈরি হতে দেয় না