Атака переполнения динамической памяти (атака переполнения кучи)


Атака переполнения динамической памяти (heap overflow) — это тип уязвимости, при котором злоумышленник записывает данные за границы выделенного блока в области динамической памяти, нарушая целостность смежных структур или управляющих данных. Такая атака позволяет изменить поведение программы, вызвать сбой или выполнить произвольный код.

Куча используется для хранения данных, создаваемых во время выполнения программы, и управляется аллокаторами памяти, например, malloc в C или new в C++. Если программа не проверяет размер вводимых данных и записывает больше, чем было выделено, злоумышленник может перезаписать важные структуры, например, метаданные аллокатора или указатели, что может привести к передаче управления вредоносному коду. Эти атаки особенно опасны, если позволяют обойти защитные механизмы, такие как DEP или ASLR.