Уязвимость переполнения стека
Что такое Уязвимость переполнения стека?
Уязвимость переполнения стекаПереполнение буфера, происходящее на стеке программы, обычно затирающее сохранённый адрес возврата или локальные указатели, чтобы перенаправить выполнение.
Переполнение стека — исторический архетип эксплойтов на повреждение памяти: непроверенная запись в буфер на стеке выходит за его пределы и затирает фрейм-указатель или сохранённый адрес возврата, позволяя атакующему перенаправить поток управления в подконтрольные байты (shellcode или ROP-гаджеты). Меры защиты — стековые канарейки (StackGuard, /GS), неисполняемые стеки (DEP/NX), ASLR, теневые стеки и Intel CET, а также FORTIFY_SOURCE и более безопасные строковые функции. Несмотря на десятилетия мер, классические переполнения стека встречаются в прошивках, IoT и старом ПО и остаются регулярной темой CVE и CTF-задач.
● Примеры
- 01
CVE-2003-0352 (DCOM RPC): червь Blaster использовал переполнение стека.
- 02
CVE-2019-0708 (BlueKeep): переполнение стека в службе удалённого рабочего стола.
● Частые вопросы
Что такое Уязвимость переполнения стека?
Переполнение буфера, происходящее на стеке программы, обычно затирающее сохранённый адрес возврата или локальные указатели, чтобы перенаправить выполнение. Относится к категории Уязвимости в кибербезопасности.
Что означает Уязвимость переполнения стека?
Переполнение буфера, происходящее на стеке программы, обычно затирающее сохранённый адрес возврата или локальные указатели, чтобы перенаправить выполнение.
Как защититься от Уязвимость переполнения стека?
Защита от Уязвимость переполнения стека обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Уязвимость переполнения стека?
Распространённые альтернативные названия: Stack smashing.