# Використання після звільнення {{#include ../../../banners/hacktricks-training.md}} ## Основна інформація Як випливає з назви, ця вразливість виникає, коли програма **зберігає деякий простір** в купі для об'єкта, **записує** туди деяку інформацію, **звільняє** її, очевидно, тому що вона більше не потрібна, а потім **знову отримує до неї доступ**. Проблема в тому, що це не є незаконним (не **буде помилок**), коли **доступається звільнена пам'ять**. Отже, якщо програма (або зловмисник) змогла **виділити звільнену пам'ять і зберегти довільні дані**, коли звільнена пам'ять доступна з початкового вказівника, **ці дані могли бути перезаписані**, що викликало **вразливість, яка залежатиме від чутливості даних**, які були збережені спочатку (якщо це був вказівник на функцію, яка повинна була бути викликана, зловмисник міг би контролювати її). ### Атака першого підходу Атака першого підходу націлена на те, як деякі аллокатори пам'яті, такі як у glibc, управляють звільненою пам'яттю. Коли ви звільняєте блок пам'яті, він додається до списку, а нові запити на пам'ять беруться з цього списку з кінця. Зловмисники можуть використовувати цю поведінку, щоб маніпулювати **які блоки пам'яті повторно використовуються, потенційно отримуючи контроль над ними**. Це може призвести до проблем "використання після звільнення", коли зловмисник може **змінити вміст пам'яті, яка повторно виділяється**, створюючи ризик безпеки.\ Дивіться більше інформації в: {{#ref}} first-fit.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}