BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/lj/archive/2008/0505.2047.html

кивибердное
05.05.08 20:47 // оригинал
Иногда о безопасности можно писать из общих соображений. Иногда же нужно иметь представление о программировании, иначе получается такое.

1. "С присущей компьютерам проблемой переполнения буфера памяти мир безопасности вплотную познакомился" вовсе не в 1996 году, а существенно раньше. Срыв стека использовался еще в вирусе Морриса, а известен был задолго до того.

2. NULL pointer, особый указатель адреса памяти с несуществующим значением - помимо кривого определения, имеет весьма косвенное отношение к описываемой уязвимости ("если эти самые NULL-указатели так опасны, почему их до сих пор используют в кодах программ, вместо того чтобы от них отказаться?" - mamma mia). "Есть возможность заставлять некоторые приложения обращаться к произвольным адресам памяти и выполнять соответствующие коды всякий раз, когда происходит доступ к NULL pointer" - полнейший бред (жило себе приложение, с какого-то бодуна спокойно обращалось к нулевым адресам, игнорируя аппаратные исключения, и вдруг нашли способ его в этот момент обмануть - так, что ли?).

3. Уязвимость в flash-плейере в принципе не относится к типу "переполнение буфера памяти" и вряд ли может быть названа принципиально новой. Используется в ней хорошо известное целочисленное переполнение (большим unsigned int соответствуют отрицательные signed int, чем можно играть при смешивании unsigned/signed операций), которое приводит к тому, что функция выделения памяти получает в качестве параметра отрицательное число и возвращает тот самый NULL вместо осмысленного адреса памяти. Далее к возвращенному значению (отсутствие проверки на NULL и является основным источником уязвимости) прибавляются различные смещения (формируемые на основе того же полученного извне большого unsigned int), что и дает возможность писать в более-менее производные адреса памяти.

P.S. Эх, не удержался.

 
обсудить  |  все отзывы (0)  |  обсудить в LJ [890]
назад «  » вперед

последние записи
ihrkampfное // 02.10.24 16:30
отпускное // 08.07.24 23:02
синхронное // 13.06.24 18:07
автоматизаторское // 16.05.24 18:12
песчаное // 13.03.24 18:05
макоудаленное // 29.01.24 23:10
разнонедельное // 07.12.23 15:09
qtменюшное // 29.09.23 23:47
неестественноинтеллектуальное // 29.09.23 16:50
основательное // 18.09.23 00:15





  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach