Возможно ли такое в мкл4,5 ???

 

Довольно часто посещаю сайт секлаб, где буквально постоянно висят сообщения

об очередной бяке с переполнением буфера. Дошло уж до того, что картинки страшно поглядеть:

Переполнение буфера при обработке TIFF файлов в LibTIFF
Переполнение буфера в JPEG 2000 потоке в oxit Reader JPEG2000/JBIG Decoder Add-On
Переполнение буфера при обработке изображений в xcftools
переполнение буфера при обработке TIFF изображений в InfraView

Кстати. Это фундаментальная ошибка в архитектурах???

или элементарная небрежность кодеров?

или бяка не так страшна как её малюют?

Но более интересует почему переполнение буфера позволяет выполнить код на целевой машине.

Какие-то сложности "закрыть проблему железно" ?

*

В мт4,5 имеется для этой бяки потенциал?

(собственно главный вопрос темы)

*

;) понимаю что буфер это не тот буфер...

 
Как правило имеется ввиду переполнение буфера локальной переменной лежащей в стеке возврата, то есть приложение не проверяет длину переменной перед попыткой её записать в буфер. Таким образом можно затиреть на стеке адрес возврата, указав произвольный, и выполнить любой код.