Уязвимость во всех версиях Internet Explorer dl // 27.04.14 17:27
Microsoft предупреждает об уязвимости в IE, приводящей к возможному удаленному исполнению кода из-за попытки работы с уже удаленными объектами. [Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2014/04/07.html] Согласно обнаружившей уязвимость компании FireEye, она присутствует во всех версиях с 6 по 11, однако обнаруженная атака ориентирована на версии с 9 по 11 и основана на взаимодействии с Flash.
Исправления еще нет, пока предлагается ограничить использование скриптов и ActiveX, переведя уровень безопасности для зоны Internet в состояние High. В серверных ОС этот уровень выставлен по умолчанию.
Я с такими фокусами еще в 98й сталкивался - обращение по хендлу к "убитому" объекту приводит к чтению данных/исполнению кода, который может быть в любом состоянии от абсолютно живого до принадлежащего фрагментарно другим объектам, в т.ч. и живым.
Вполне взможно, что такие вещи можно вытворять и сейчас.
это справедливо для любой ОС и проблема не системы, а приложения28.04.14 21:05 Автор: dl <Dmitry Leonov>
Если бы обнулялись - был бы сразу ексепшен при попытке обращения и все баги легко бы выявлялись. А так - обратится и будет работать, пока не наткнется на переписанный блок или несуществующую страницу. А чем это вызвано? Поди - найди.
еще раз, это не системная проблема01.05.14 18:35 Автор: dl <Dmitry Leonov> Отредактировано 01.05.14 18:46 Количество правок: 7
К тому же обнуление указателя при удалении и очистка памяти, оставшейся после удаления объекта, - вообще совершенно разные проблемы. Первое еще дальше от системы, чем второе, поведение это одинаковое хоть в винде, хоть в юниксах. Я могу иметь несколько указателей, в которых лежит адрес одного и того же блока памяти, и никакая система волшебным образом не обнулит их всех при освобождении памяти через какой-то один указатель. Частично проблема решается с умными указателями, занимающимися подсчетом ссылок и самостоятельным освобожднением памяти, но это и более высокий уровень, и накладные расходы.
Но и за удаление объектов при обычной работе отвечает не система, а рантайм, выделяющий память на куче. В дебаг-версиях в принципе можно и проверять валидность выделенного рантаймом блока памяти через всякие _CrtIsMemoryBlock, _CrtIsValidHeapPointer и т.п. А вот если работать с памятью через VirtualAlloc/VirtualFree, то после обращения к освобожденному блоку без всяких обнулений указателей придет честное исключение, какое-нибудь EXCEPTION_ACCESS_VIOLATION. Только VirtualAlloc слишком дорогая для работы с отдельными объектами.
А, ты вот что имеешь в виду!02.05.14 04:44 Автор: Zef <Alloo Zef> Статус: Elderman
Ну, от перекрестного обращения к реаллоцированной памяти, точно, ничто не спасет.
Я-то понял так, что обращения идут не непосредственно из пользовательского кода по указателю, а через АПИ-шные ф-ции, аргументом для которых является хендл. Вот такую подлянку сам уже хрен обнаружишь!
конкретно activeX бажит то мелко, то крупно всё время жизни ie. Помню косяки даже в третьей версии. Я к тому, что дело не в ос напрямую, а в продукте-браузере и древнейшем косяке.01.05.14 03:47 Автор: kstati <Евгений Борисов> Статус: Elderman