Обзор эксплойтов

Крис Касперски ака мыщъх

Хакер, номер #091, стр. 091-060-1

Удаленное переполнение буфера в zlib

6 июня Tavis Ormandy обнаружил уязвимость библиотеки ZLIB версии 1.2.2 (и более ранних), приводящую к переполнению буфера с возможностью выполнения произвольного кода на пораженной машине. Ошибка контроля допущена в функции inflate_table(), расположенной в файле inftrees.c, ключевой фрагмент которой идет ниже:

Листинг 1: ошибка контроля в функции inflate_table() библиотеки zlib-1.2.2

/* check for an over-subscribed or incomplete set of lengths */

left = 1;

for (len = 1; len <= MAXBITS; len++)

{

left <<= 1; left -= count[len];

if (left < 0) retu -1; /* over-subscribed */

}

if (left > 0 && (type == CODES || (codes - count[0] != 1)))

retu -1; /* incomplete set */

Исправленный вариант выглядит так:

Листинг 2: та же самая функция в библиотеки zlib-1.2.3

/* check for an over-subscribed or incomplete set of lengths */

left = 1;

for (len = 1; len <= MAXBITS; len++)

{

left <<= 1; left -= count[len];

if (left < 0) retu -1; /* over-subscribed */

}

if (left > 0 && (type == CODES || max != 1))

retu -1; /* incomplete set */

И хотя рабочего exploit'а в сети обнаружить не удалось, приведенной выше информации вполне достаточно, чтобы его написал любой грамотный хакер.

Это настоящая катастрофа! Библиотека ZLIB используется огромным количеством программ как с динамической, так и со статической компоновкой. А это значит, что для устранения уязвимости обновить файл zlib1.dll/libz.so будет явно недостаточно и потребуется перекомпилировать все программное обеспечение, слинкованное с ZLIB статическим способом. А если программа включает в себя фрагменты исходных текстов компрессора, «вживляя» их в свое тело, то починить ее сможет только разработчик.

Полный список уязвимых систем можно найти на www.securityfocus.com/bid/14162/info, а заплатки к ним — на http://www.securityfocus.com/bid/14162/solution. Как и следовало ожидать, под угрозой оказались практически все платформы: Apple Mac OS X, Conectiva Linux, Debian Linux, FreeBSD, и т.д.

Mozilla firefox, seamonkey, thunderbird множественные удаленные уязвимости

До сих пор главным мотивом использования горящего лиса (и его производных) была уверенность в его безопасности. Чем больше дыр обнаруживалось в IE, тем охотнее пользователи переходили к аутсайдеру. Когда популярность лиса достигла некоторой критической отметки, хакеры взялись за него всерьез, и дыры полились полноводной рекой, подмочив лису его огненно-рыжий хвост. Если так будет продолжаться и дальше, то движок Mozilla (кстати говоря, расшифровываемый как Mosaic Killer – движок, на котором основан IE), не только догонит, но и перегонит IE!

За последнее время было обнаружено огромное количество дыр в Mozill'e, позволяющих выполнять произвольный код на атакуемой машине, повышать уровень привилегий JavaScript вплоть до исполнения машинного кода, запускать JavaScript даже когда он отключен, обрушивать браузер, предоставлять доступ к личным данным пользователя и т. д.

Все ошибки перечислять было бы слишком утомительно, вот только некоторые из них: хакер по кличке moz_bug_r_a4 обнаружил, что JavaScript, запущенный через компонент EvalInSandbox (используемый главным образом для автоматической настройки proxy), может вырваться за пределы «песочницы» и повысить свои привилегии простым вызовом valueOf(). Это делается через обращение к объекту, созданному вне «песочницы», и «затягивания» его внутрь. Другой исследователь Mikolaj J. Habryn обнаружил переполнение буфера в функции crypto.signText() из-за неправильной обработки индексов в массивах. Также команда разработчиков столкнулась с трудновоспроизводимыми разрушениями памяти, создающими угрозу засылки shell-кода со всеми вытекающими отсюда последствиями.

Содержание  Вперед на стр. 091-060-2
ttfb: 4.1868686676025 ms