Страница 1 из 1

СообщениеДобавлено: Вс май 29, 2011 5:07 pm
Володья
Найдена ошибка в библиотеке сжатия zlib, которая может проявляться как уязвимость в программах, использующих zlib. Уязвимость позволяет нападающему вызывать отказ от обслуживании, собирать информацию, или выполнять произвольный код.

Уязвимость найдена в алгоритме декомпрессии, используемом zlib. Если атакующий сможет передать специально обработанный блок недопустимых сжатых данных к программе, которая использует zlib, попытка программы декомпрессировать обработанные данные может заставить подпрограммы zlib разрушить внутренние структуры данных, обслуживаемые malloc.

Связано это с ошибкой программирования, которая позволяет сегментам динамически распределенной памяти освобождаться более одного раза (то есть " double-freed "). Когда функция inftrees.c:huft_build() принимает обработанные данные, она возвращает Z_MEM_ERROR к inftrees.c:inflate_trees_dynamic(). Когда последующий запрос сделан к infblock.c:inflate_blocks(), функция inflate_blocks попытается освободить данные второй раз.

Поскольку эта ошибка нарушает правильное распределение и освобождение динамической памяти, она позволяет нападающим воздействовать на операции в программах, которые используют zlib. В большинстве случаях, это воздействие будет ограничено отказом от обслуживания или утечкой информации, но также теоретически возможно вставить произвольный код в выполняемую программу. Этот код будет выполнен с разрешениями уязвимой программы.

На сегодняшний день нет информации об успешной эксплуатации этой ошибки. Неизвестно, возможно ли вообще, каким либо образом использовать этот дефект.

Ошибка затрагивает все программы, которые используют библиотеку zlib.

СообщениеДобавлено: Вс май 29, 2011 5:22 pm
Mihal
О! Скоро хакеры начнут "ронять" принтеры самсунг.

СообщениеДобавлено: Ср июн 01, 2011 6:43 pm
Володья
А что скажут многоуважаемые фиксоделы по этому поводу>?

СообщениеДобавлено: Ср июн 01, 2011 6:57 pm
readiv
zlib используется при распаковке прошивки принтера. В самом принтере он не используется. Так, что хрень это всё.

СообщениеДобавлено: Ср июн 01, 2011 6:58 pm
Malice
readiv писал(а):zlib используется при распаковке прошивки принтера. В самом принтере он не используется. Так, что хрень это всё.

Удивил..

СообщениеДобавлено: Ср июн 01, 2011 7:09 pm
readiv
А что не так? Загрузчик распаковывает в принтере и всё. А дальше он зачем?

СообщениеДобавлено: Ср июн 01, 2011 7:11 pm
Malice
Но ведь в самом принтере он используется, когда распаковывает и стартует.

СообщениеДобавлено: Ср июн 01, 2011 7:20 pm
readiv
Естественно. Неточно выразился. Во время штатной работы не используется. Так наверное. А я кажись понял про фокус из темы Мишелям :) Модификация лоадера?

СообщениеДобавлено: Ср июн 01, 2011 7:31 pm
Malice
readiv писал(а):Естественно. Неточно выразился. Во время штатной работы не используется. Так наверное. А я кажись понял про фокус из темы Мишелям :) Модификация лоадера?

Лоадер умеет печатать отчет? Но все равно нет, лоадер родной.

СообщениеДобавлено: Ср июн 01, 2011 7:33 pm
readiv
А из лоадера к nvram нет доступа? Он не сможет поменять несколько байт в nvram?

СообщениеДобавлено: Ср июн 01, 2011 7:34 pm
Malice
Есть в принципе.

СообщениеДобавлено: Ср июн 01, 2011 7:36 pm
readiv
Если есть, то можно добавить в него изменение SN.

СообщениеДобавлено: Ср июн 01, 2011 7:45 pm
Malice
readiv писал(а):Если есть, то можно добавить в него изменение SN.

Можно, но с тем фокусом ну никак не вяжется. Несколько смен подряд, дебаг не подключен.

СообщениеДобавлено: Ср июн 01, 2011 8:48 pm
Володья
Прям Борьба Титанов :-) Может еще кто скажет слово>?

Добавлено спустя 8 минут 18 секунд:
Python – удаленное переполнение буфера в библиотеке zlib
Brief

Хакер Justin Ferguson из IOActive Security Advisory 9 апреля этого года обнародовал обнаруженную им дыру в популярной библиотеке zlib. Библиотека входит в штатный комплект поставки языка Python, приобретающего с каждым днем все большую и большую распространенность, и потому угроза вполне актуальна. «Сидит» ошибка в функции PyZlib_unflush, реализованной в файле Python-2.5.2/Modules/zlibmodule.c. Функция выполняет сброс (flush) указанного количества байт, заданного знаковым аргументом (всегда трактуемым как положительное целое без проверки на отрицательное значение; передача которого функции выделения памяти приводит к резервированию одного байта буферной памяти). А вот функция копирования данных в буфер после преобразования отрицательного знакового аргумента в беззнаковое получает очень большое число, соответствующее нескольким гигабайтам памяти.

Естественно, это приводит к переполнению кучи. Дыра объявлена удаленной, хотя на самом деле она локальная. Момент требует пояснений. Да, действительно, дыра локальна по своей природе и, чтобы добиться переполнения, необходимо вызывать функцию flush(). Это можно сделать, только если запускать Python-программы на целевой машине, для чего там должен быть установлен интерпретатор языка, а хакеру – предоставлен shell с возможностью выполнения Python-программ. Но даже при таком оптимистичном раскладе злоумышленник не сможет завалить операционную систему, а только запущенный экземпляр интерпретатора. Или (в идеале) захватить управление системой без превышения уровня имеющихся у него привилегий. А оно ему надо? Так что атака носит сугубо лабораторный характер. Лишь в тех немногих случаях, когда интерпретатор Python'а запускается на более высоком уровне привилегий, хакер может поиметь с этого какую-то выгоду.

http://www.xakep.ru/magazine/xa/113/048/1.asp

вот еще пища для размышлений!