LINUX.ORG.RU

В браузере Mozilla Firefox нашелся баг...


0

0

Степень критичности выяснять не берусь, но одно то, что эта уязвимость позволяет получить доступ к памяти браузера говорит о многом.

Проявляется данная ошибка при вложенном вызове регулярного выражения в JavaScript'e var rx=/val/i; x = x.replace(rx,function($1){ $1.match(rx); return ""; }); и определенном построении строки, передаваемой регулярному выражению.

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

>>> Подробности



Проверено: K48 ()
Ответ на: комментарий от anonymous

>$1.match(rx);
>то есть этот матч ищет в строке "end" регекст /end/i и вызывает такой глюк?

match возвращает array of matches, т.е. допустим у нас все без глюков.
если у нас $1 содержит "end", то $1.match(rx) вернет массив из одного элемента "end";
Но т.к. это ничему не присваивается, то он по идее вообще не должен никак влиять на результат.

но в силу обстоятельств и неидеальности :) у нас вызов этого выражения (в оригинале конечно оно вызывалось по делу, просто это совсем упрощенный вариант) глючит сам replace.

Mons
()

Я аж заинтирговался! :) Не знаю, konqueror кем только не пытался представить - Mozilla, Firefox etc... выдаёт вот:

We've aquired 512 bytes of memory. To gain another random part of memory, refresh page. XXXXXXXXXXXXXXXXXXXXXX...

Как я понял из треда, я могу идти спать спокойно, независимо от того шутка это или нет :)

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

Я тут подумал, а опять же не факт, что ошибка в jsregexp.c, возможно в jsstr.c. Насколько я понял как раз там replace и match описаны.

Swappp
()
Ответ на: комментарий от Mons

хыхы, mons молодец, не перевелись в России таланты :))

anonymous
()
Ответ на: комментарий от Swappp

>Ваш файл jsstr.tar.bz2 (размер 28 кбайт)

>доступен по адресу: webfile.ru/242798 в течение 21 день до 00:36 23.04.2005.

Swappp
()

Чтобы спецам было легче искать, приведу свои соображения. Для начала, давайте сделаем кое-какие изменения в скрипте: ... //x = x.replace(/^end/,""); ... var mem = genGluck( "XXXXend"); ... document.write(mem); document.write(mem.length); </script> В общем, понятно, где и что надо делать. "Скармливаем" скрипт браузеру, и видим строку "end4". Что это за цифра, 4 ? Это количество "X"-ов в строке. Теперь ситуация проясняется. replace ищет подстроку "end", находит её. Дальше, по идее, надо скопировать исходную строку с нулевого смещения, длиной 4 символа в новый буфер, и добавить к буферу пустую строку. Что, в общем-то и происходит, за исключением того, что копируется строка не сначала, а с того места, где найдена заменяемая подстрока. Короче, где-то программисты "зевнули" указатель на начало исходной строки. Удачи, специалисты !

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

>Зы приятно, что ЛОР это самое крутое место где можно узнать такие новости раньше мировых агентств информационной безопасности (на secunia пока пусто :)

Дааа... ЛОР forever!!

php-coder ★★★★★
()
Ответ на: комментарий от anonymous

Mozilla/5.0 (X11; U; Linux i686; ru-RU; rv:1.6) Gecko/20040601 Firefox/0.8 Баг работает...

php-coder ★★★★★
()

для шЮтников неверящих это это баг описываю как можно преверить его работоспособность:
0. открваем любой сайт где побольше текста
1. в новом табе открываем http://cubic.xfo.org.ru/firefox-bug/index.html
2. сохраняем на венике index.html
3. отрубаемся от инета, открываем локальный index.html
4. кликаем рефреш до наступления нирваны, т.е. до появления текста первого сайта

2 Mons: большой РЕСПЕКТ за то что запостил такой баг а не продал каким нибудь спамерам :)

ref
()
Ответ на: комментарий от anonymous

>Чтобы спецам было легче искать...

Отсюда можно вычислить критичность бага: Можно только прочитать память процесса; Лис "падает" только тогда, когда пытается скопировать строку из запрещенной для чтения области памяти; и уж никак невозможно ничего в память записать (кроме того, что в ней уже и так имеется).

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

>Хорошо что FF не является системным процессом, как explorer. :)

Это уж точно ;))

Жаль, что не только ФФ, но и Мозилка этот баг имеет :(

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

Кстати, Mons, ты там наезжал на Мозилу, еси памятть мне не врёт. Типа почтовиком всё равно большинство не пользуется. А никто никого и не заставляет. Компилить её можно чисто как браузер без всех остальных приблуд. Так же и пакеты обычно собираются для бистров отдельно:Мозила, мозила-мейл etc. Так что эта притензия безпочвенна и выдумана просто для пропаганды. Именно выдумана, т.к. не является правдой. А исходники ФФ, ТВ и прочих внесят одинаково. И бинарники примерно одинаково... Причём, почти немногим меньше Мозилы. Это так, для инфы.

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

Под виндой ведет себя хорошо, правильно, дамп выдает вполне узнаваемый. Netscape 7.2 отработал на ура, в ИЕ не работает.

anonymous
()

А что собственно должно происходить: жму на кнопку проверить и ничего не происходит.

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050330 Firefox/1.0+

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

>а у тебя Java и JavaScript в настройках включены?

Да. Быть может баг только в оффициальных релизах. В транках уже давно всё исправили?

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

А не, теперь всё работает :) :(

anonymous
()

Действительно уязвимость :( И какая!

Krok
()
Ответ на: комментарий от anonymous

> я бы подсуетился а то ведь бабло уведут

Теперь уже нет, деньги за сообщение об ошибки дают. А если что, так весь ЛОР потвердит, кто её первой нашел.

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

*** This bug has been marked as a duplicate of 288688 *** По моему кто-то просто хочет увести Джек Пот (в конце концов 288608 меньше чем 288688). Так что ребята честно мухлюют, кстати патч таки доступен :)

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

> Так что ребята честно мухлюют, кстати патч таки доступен :)

Просто переписали баг с правильными деталями (OS: All, Component: JavaScript Engine и т.п.). Факт есть факт, первый репорт был сделан не Brendan'ом :)

Sudonix
()
Ответ на: комментарий от gass512

А где лежит? Дайте ссылку. Я чего-то на www.mozilla.org я его не обнаружил. Интересно, Mozilla тоже обновят или умерла так умерла? В принципе, баг то в Mozilla, а не firefox

sergeil
()
Ответ на: комментарий от valeri_ufo

> слущайте а почаму бы не заслешдотить эту новость ?

уже пробовал -- rejected

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

> По моему кто-то просто хочет увести Джек Пот

На самом деле, url-то у 288688 указывает туда же куда и url у 288608, так что не думаю. :-)

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

> Насколько я понял, версия с устраненным багом должна быть http://www.mozilla.org/developer/ в конце страницы есть * Nightly Builds * но увы, там этот бпг остался!

На фтп все свежие сборки всегда. И там баг пофиксен.

gass512
()
Ответ на: комментарий от anonymous

>офигеть, этот баг уже 8-й год не могут зафиксить!

Это не зафиксить не могут, а нашли просто недавно.

anonymous
()
Ответ на: комментарий от andyS1976

Вот Вам еще одно приимущество OpenSource.

Я уже запатчил mozilla-1.7.6-1.3.2asp.src.rpm от ASPLinux-10 и пересобрал. Теперь сухо и тепло. Думаю, что большенство пользователей НЕ OffTopic сделали тоже самое.

А Вот своим юзерам, которые сидят под OffTopic, я в понедельник интернет, по всей видимости, обрежу. И будут они дожидатся появится патченой mozilla или firefox. Нет у меня среды разработки под M$. И не будет.

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

> А Вот своим юзерам, которые сидят под OffTopic, я в понедельник интернет, по всей видимости, обрежу. И будут они дожидатся появится патченой mozilla или firefox. Нет у меня среды разработки под M$. И не будет.

ftp://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2005-04-01-21-aviary1.0...

Вот для винды патченая.

gass512
()

В Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.7) Gecko/20050401 Firefox/1.0.3 пишет

your Gecko/20050401 Firefox/1.0.3 not vulnerable


PS. (правильно _is_ not vulnerable)


poet
()
Ответ на: комментарий от anonymous

На самом деле это все вопрос к системе тестирования и перекликается с недавним высказыванием Линуса по поводу производительности различных версий ядер. В OpenSource нужна новая парадигма (методология) тестирования которая будет строится начиная с этапа проектирования.

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

> На самом деле это все вопрос к системе тестирования и перекликается с недавним высказыванием Линуса по поводу производительности различных версий ядер.

На самом деле самого дела нет. А вопрос это только к кривости рук писавшего этот фрагмент.

anonymous
()
Ответ на: комментарий от Sudonix

> Просто переписали баг с правильными деталями (OS: All, Component: JavaScript Engine и т.п.). Факт есть факт, первый репорт был сделан не Brendan'ом :)

Всё правильно, никто не мухлюет. Кстати, Brendan Eich, которые "открыл" этот баг - автор JavaScript.

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

Ну так правильно никто и не спорит. Я виду к тому, что в OpenSource квалификация разработчиков разная что и приводит к таким вот результатам и от этого не уйти. Этот недостаток можно устранить только на этапе тестирования. На данный момент этот этап отсутствует и заменяется "слепым тыканием пальца в небо" пользователей.

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