LINUX.ORG.RU

Опасная уязвимость в Firefox 3.x

 ,


0

0

Поступила информация об обнаружении опасной уязвимости в Firefox 3.5.

Уязвимость имеет тип heap spray, т.е. позволяет записать произвольные данные в область кода процесса за счет неконтролируемого превышения длины строки и выхода ее за пределы динамически распределяемой области памяти. Обусловлена она наличием серьезных ошибок в JavaScript-движке браузера.

Таким образом, при открытии пользователем специально сформированной веб-страницы, возможен отказ в обслуживании (падение браузера) либо исполнение на его машине произвольного кода.

Как сообщается в комментариях в коде эксплойта, он был протестирован на Firefox 3.5. Дополнение от автора новости: Firefox 3.0.11 этот сплойт тоже успешно роняет.

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

>>> Код эксплойта на milw0rm

★★★★

Проверено: Shaman007 ()

Ответ на: комментарий от kristall

>Хочу полностью оключить torrent и мыло. Это можно? Заодно чтобы Unite был модулем. Скажем подключался отдельно.

Да ты издеваешься ! Браузер с вшитыми торрент и почтовым клиентами ? Не бывает такого.

S_wine
()
Ответ на: комментарий от valich

>Вот когда эксплойтописатели поймут как в Линуксе калькулятор запустить

$ apt-cache search calculator | wc -l
72

Какой конкретно калькулятор? :)

madgnu ★★★★★
()

народ, поясните разницу с обычным переполнением буфера. я чет не догоняю. те же яйца, вид сбоку? или я не так трактую описание с вики?

Deleted
()
Ответ на: комментарий от beda

Konqueror не дотягивает?
Я им всегда пользуюсь, кроме некоторых случаев, когда сайт в нем не работает, но это редко.

Xenius ★★★★★
()
Ответ на: комментарий от S_wine

> Браузер с вшитыми торрент и почтовым клиентами

А с почтовым уже было - mozilla

elipse ★★★
()
Ответ на: комментарий от Deleted

> поясните разницу с обычным переполнением буфера.

имхо ,тут отличия в причинах появления переполнения.

elipse ★★★
()
Ответ на: комментарий от S_wine

>Да ты издеваешься ! Браузер с вшитыми торрент и почтовым клиентами ? Не бывает такого.

Нет, я не издеваюсь..Вопрос : <i>how to compile opera without bittorrent support ?</i> Ответ: <i>Very rich in features, with support even for BitTorrent or widgets, Opera definitely stands as a true web ..</i>

kristall ★★
()
Ответ на: комментарий от kristall

Оно кому-то мешает, кроме самого факта своего существования?

JackyTreehorn
()
Ответ на: комментарий от sv75

Всем, у кого "открылось мгновенно" - по ссылке не эксплойт, а исходный код эксплойта. Скопируйте его, сохраните в хтмл файл и вот ТОГДА смотрите будет оно падать или нет.

п.с. у меня что на 3.0.11, что на 3.5 падает за милую душу.

Davinel
()
Ответ на: комментарий от JackyTreehorn

> Тебе уже выше сказали: не с++, а кривые руки.

Чушь! У Программиста пишущего на С++ не может быть кривых рук по определению.
На священном языке могут говорить только Боги!

valich ★★★
()
Ответ на: комментарий от Davinel

Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1) Gecko/20090707 Iceweasel/3.5 (Debian-3.5-1)

Открыл в одной вкладке, потребление памяти процессом прыгнуло с 80 Mb до 670 Mb
Открыл во второй вкладке, потребление памяти процессом прыгнуло с 670 Mb до 1,1 Gb
Открыл в третьей вкладке, потребление памяти процессом прыгнуло с 11 Gb до 1,8 Gb
Тут закончилась оперативка. И заполнение памяти пошло значительно медленнее. Теперь бровзер ругается, что долгоиграющий скрипт всем надоел, и не прихлопнуть ли его?

Ничего не упало! Правда странички стали со скрипом открываться.

valich ★★★
()
Ответ на: комментарий от jodaka

>что я делаю не так? :)

хз, узнаешь что? Поделись. У меня он выкидывает табличку с предложением прибить скрипт, и так через каждые 30 секунд, если жать "продолжить".

hardworm
()
Ответ на: комментарий от valich

>на "главной" серьезного ресурса.
>серьезного ресурса.

А я дурак сюда поржать захожу :)

xorik ★★★★★
()
Ответ на: комментарий от S_wine

>Браузер с вшитыми торрент и почтовым клиентами ?

ну почтовые клиенты давно очень плотно завязываются на браузеры, с тех пор как появились html-письма. Ну а все перечисленное и так реализуется как модули. Если не настраивать даже пункта в менюшках не будет

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Davinel

>по ссылке не эксплойт, а исходный код эксплойта.

Ога, причем сервер отдает его как текстовый файл.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

>ну почтовые клиенты давно очень плотно завязываются на браузеры, с тех пор как появились html-письма. Ну а все перечисленное и так реализуется как модули. Если не настраивать даже пункта в менюшках не будет

Кстати да. Настроил быстренько сохранение torrent файлов, теперь вобще проблем нет. Пожалуй таки Опера. Жаль конечно раставаться с огнелисом. Но что поделаешь, если его превратили в то, во что вы сами видите что. Горестно это говорить, но я знал что этим все закончится.

kristall ★★
()
Ответ на: комментарий от nnz

Это что и где? Extension такого нет. Жабоскрипт включён.

world
()

По ссылке, как я понял, сплоит для Windows, который запускает calc.exe (калькулятор).

/* Calc.exe */ var shellcode = unescape ...

Открывая его в Linux, естественно, калькулятор не запустится.

mr_anonymous
()

на винде не совсем сработало. лис вырубился и предложил мне восстановить свою работу или закрыть себя, вежливо так извиняясь. calc работать не захотел.

RedPossum ★★★★★
()

Всё зависит от компилятора, опций сборки и ядра ОС!

Ошибок в коде много.. очень много... Для того чтобы уберечься от таких эксплоитов надо рандомизировать адрес выделяемой памяти процесса, и использовать защиту памяти - даные без выполнения (noexec), а область програм (exec) без изменения, ядро Линукса должно убивать "некорректно" ведущий себя процес тогда эксплоит не сможет причинить вред, кроме завершения атакованного процесса.

Гентушики имеют для этого профиль hardened


Всем остальным при сборки gcc надо добавить флаги

CFLAGS="-fPIC -fstack-protector -fstack-protector-all"
CXXFLAGS="-fPIC -fstack-protector -fstack-protector-all"


Для последней версии ядра Линукс

linux-2.6.30-2 # make menuconfig
General setup --->
[ ] Disable heap randomization

или

echo 2 > /proc/sys/kernel/randomize_va_space

Processor type and features --->
[*] Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)

Это хуже чем hardened но лучше чем ничего..

GNUFun
()
Ответ на: комментарий от Xenius

> Konqueror не дотягивает? > Я им всегда пользуюсь, кроме некоторых случаев, когда сайт в нем не работает, но это редко.

Я долгое время сидел на кедах 3.5, конкверор часто ругался на ошибки сценария JS. Недавно перешел на кеды 4, поэтому объективного мнения нет. Пока только не понравилось отображение полей ввода на некоторых страницах, куда то девается правая граница.

beda
()

> В настоящее время исправления ошибки от производителя отсутствуют, поэтому пользователям рекомендуется воздерживаться от использования Firefox.

fixed.

GFORGX ★★★
()

GNUFun, объясни мне, ламеру от Линукса, в чём прикол? Все знают, что начиная с 80386, проц имеет чётко разделяемые сегменты кода, данных и стека. Откуда в Линуксе могут быть проблемы переполнения буфера?! Он что, вообще не знает про сегменты??

matumba ★★★★★
()
Ответ на: комментарий от kristall

> я знал что этим все закончится.

ЛОР-аналитик? :) Почем будет кока-кола в 2050-м году?

twoflower
()
Ответ на: комментарий от X-Pilot

>Автор, а тебя не смущает, что эксплойт нацелен на TraceMonkey, который появился только в 3.5?

Абсолютно не смущает. Потому что я сам видел, как он роняет 3.0.11.
Но libastral тебе лучше пересобрать - баги он неверно идентифицирует :)

nnz ★★★★
() автор топика
Ответ на: комментарий от nnz

>Абсолютно не смущает. Потому что я сам видел, как он роняет 3.0.11.

Если оно роняет тебе 3.0.11, то это
a) или баги твоей системы,
b) или баги твоей сборки Firefox'а
c) или это другой баг, который с этим не связан.
Тестер из тебя - фиговый в любом случае: у меня ничего не падает в 3.0.11 - Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060214 Firefox/3.0.11; дистр - Fedora 11, чистый профиль

X-Pilot ★★★★★
()

а патча то до сих пор нет...

где релиз?

PoC exploit уже 2 дня на свободе гуляет, где спрашивается Firefoxы 3.0.12 и 3.5.1 ?

Sylvia ★★★★★
()
Ответ на: а патча то до сих пор нет... от Sylvia

>PoC exploit уже 2 дня на свободе гуляет, где спрашивается Firefoxы 3.0.12 и 3.5.1 ?

Говорят, в ночной сборке (для релизной версии) пофиксили. + зачем нужен патч на этот баг для 3.0.12?

X-Pilot ★★★★★
()
Ответ на: комментарий от X-Pilot

>Тестер из тебя - фиговый в любом случае: у меня ничего не падает в 3.0.11 - Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.11) Gecko/2009060214 Firefox/3.0.11; дистр - Fedora 11, чистый профиль

Чукча не читатель, чукча пейсатель :)
http://www.linux.org.ru/jump-message.jsp?msgid=3871010&cid=3871949

nnz ★★★★
() автор топика
Ответ на: комментарий от X-Pilot

>зачем нужен патч на этот баг для 3.0.12?

libastral все-таки пересобери, не позорься.

nnz ★★★★
() автор топика
Ответ на: комментарий от valich

>Вот когда эксплойтописатели поймут как в Линуксе калькулятор запустить, тогда всем бояться. А пока, предлагаю не постить Firefox-Ahtung-Yellow-Press-новости на "главной" серьезного ресурса.

Долго ржал, утирая слезы xD

Пояснения для самых маленьких: модификация этого сплойта, чтобы он запускал не calc.exe, а rm -rf ~, у опытного человека занимает не более пяти минут.

nnz ★★★★
() автор топика
Ответ на: комментарий от valich

я догадался, под Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.11) Gecko/2009061212 Iceweasel/3.0.6 (Debian-3.0.6-1) эксплоит не работает.

maloi ★★★★★
()
Ответ на: комментарий от nnz

>Чукча не читатель, чукча пейсатель :)

Это ты про себя, как я понимаю. У меня стабильно съедает ~621МБ (http://www.yoimg.com/i/4985557a208fb19046816d2fe37552bc-x3011.png), но ничего не падает, ни на milw0rm'е, ни на тесткейсах из багзиллы, так что валяй, рассказывай всем, как же так хитро выделяется память на архитектуре Intel P6, что ничего не падает ;)

X-Pilot ★★★★★
()
Ответ на: комментарий от matumba

>Все знают, что начиная с 80386, проц имеет чётко разделяемые сегменты кода, данных и стека. Откуда в Линуксе могут быть проблемы переполнения буфера?! Он что, вообще не знает про сегменты??

"Уязвимость имеет тип heap spray, т.е. позволяет записать произвольные данные в область кода процесса за счет неконтролируемого превышения длины строки и выхода ее за пределы динамически распределяемой области памяти."

Если область динамически распределяемой памяти процесса рандомизирована то крекер не угадает в какую область памяти можно записать свой код. А если рандомизации нет то внедрение кода будет успешным ибо крккер ЗНАЕТ адрес переменной незащищенной от переполнения;)

Про сегменты Линукс знает НО ДАЛЕКО НЕ ВСЁ ЧТО НЕОБХОДИМО ЕМУ ЗНАТЬ!!!

В ванильном ядре рандомизация ТОЛЬКО в области heap (область динамически выделяемой памяти процессу) была добавлена в версии ~2.6.27. А так ядро Линукса пока надо патчить чтобы оно сегодня знало что такое:

* Основанная на страницах реализация невыполнимых пользовательских страниц памяти

* Основанная на сегментации реализация невыполнимых пользовательских страниц памяти

* Основанная на сегментации реализация невыполнимых ЯДЕРНЫХ страниц памяти

* ограничения защиты памяти которое препятствуют тому, чтобы новый код попал в задание * Рандомизация стека и подключения памяти

* Рандомизация памяти выполнимого ядра

* Рандомизация памяти ядерного стека

* Защита против эксплуатации всех пустых указателей ptr выявляющая ошибки

* Профилактика физической памяти, чтобы предотвратить чужеродности

* Запрет ELF text перемещения (Position Independent Executables (PIE))

* эмуляция libc5, glibc 2.0, uClibc, Modula-3, GCC и linux sigreturn

* эмуляция PLT для не-i386 архитектур

* Запрет ядерной модификации через /dev/mem,/dev/kmem, или /dev/port

* Опция, чтобы отключить использование необработанного ввода - вывода

* Удаление адресов от /proc/<pid>/[maps|stat]

Каждую прогу надо пересобрать с позиционно независимый код (Position Independent Executables (PIE)) дающюю возможность работать программам при такой рандомизации на уровне ядра ОС.

А еще необходим stack smashing protect (SSP) полностью осуществлен в области пользователя и защищает уже против атак переполнения на стеке.

По этому всё надо собирать с опциями С, С++ -fPIE -fstack-protector-all и слинковать с опциями -Wl,-z,now -Wl,-z,relro

К стати

1. OpenBSD благодаря 2.3млн$ выделеных DARPA:) Кажись почти всё выше перечисленное реализовало уже в своём ядре..

2. мастдайка ветки NT тоже старается всё это в своё ядро запихнуть...

ЗЫ пока пару эпидемий в ГНУ/Линуксе не будет ядро, гцц и глибс так и не допилят до нужной кондиции. Конечно почти все заняты прибамбасами и войнами с дырявым мастдаем, пустым тролингом, а о первоочередной безопастности забывают...

GNUFun
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.