Переповнення буфера (англ. buffer overflow або buffer overrun) — аномальної стан, коли процес намагається зберегти дані за межами фіксованої довжини буфера. Результатом є те, що додаткові дані (котрі являють собою різницю між наявними і дозволеними) переписують дані, які зберігаються у прилеглих комірках пам’яті. Переповнені дані можуть включати інші буфери, а це може призвести до незвичної поведінки програми — отримання не вірних даних, і навіть її краху.
Переповнення буфера є однією з вразливостей, які найчастіше використовуються для злому різноманітних систем, оскільки більшість мов програмування високого рівня використовують технологію стекового кадру — розміщення даних в стеку процесу, змішуючи ці програми зі службовими даними (у тому числі з адресами початку стекового кадру і адресами повернення з виконуваної функції).
Read the rest of this entry »