LINUX.ORG.RU

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


0

0

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

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

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

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



Проверено: K48 ()
Ответ на: Класное чтение от nickyoz

>Со случайной позици случайного Таба со случайными симвалами посередене

Это когда я читаю 512 или 1024 байта
А если я надумаю прочитать 10Mб?
Или несколько раз по 10 мб?

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

Какая разница? винда, линух?

Судя по статистике уязвимы как Win, так и Lin версии, а также Gecko based браузеры, как то Galeon, MultiZilla, Epiphany, ....

Поэтому есдинственный реальный и простой совет в данной ситуации - отрубать JavaScript.

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

> Cовпадений по тексту нет

У меня были совпадения именно по тексту. Например, в одном табе роман Елены Плахотниковой "Типа в сказку попал" с http://zhurnal.lib.ru/p/plahotnikowa_e_w/tipa.shtml но открытый с копии на локальном диске, а не из интернета, причём копии сделанной более месяца назад, а в другом 512 байт по этой ссылке: http://cubic.xfo.org.ru/firefox-bug/index.html

Несколько раз нажал рефреш и вылезло: "Его строили боги, - говорит Тощая, хоть я ничего не спрашивал у нее. - Это Мост Богов."

Это фраза из книги. Так что зря тут некоторые сомневаются, и доступен не только URL, но и остальная часть памяти.

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

>> не все же знают что для gcc что "char*" что "char********" это один > хер.

> При чём тут gcc? Под виндой то же самое...
> anonymous (*) (01.04.2005 21:40:04)

Не знаю чем это счасте под мышевозом собирают и что он там
показывает, это раз. Для тех, кто хочет небольшой личный
опыт по багам в JS (я не ленился даже в исходник глянуть)
Баг от 2001-01-16 16:58 PST #65671, мой комент к нему:
<https://bugzilla.mozilla.org/show_bug.cgi?id=65671#c61>;
там в исходнике написано, что чувак сам не знает что делает,
это два. Итого по этому багу, TZ=Europe/Minsk, как был летом
как зимой так и есть зимой как летом:
<http://flower.upol.cz/~olecom/bugs/m-65671_d-254010/25-03-2005/>;

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

Ну баг ладно, ну что-то там не так, читаем из произвольного места памяти. Но какого хрена ядро ПОЗВОЛЯЕТ это сделать? Почему не убивает нарушителя сразу?

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

> Какая разница? винда, линух?

Как показала практика обычно огромная, просто под Линуксом может быть собранно "немного с другими параметрами"? Но в данном случае раздницы пока не замеченно :(

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

> Ну баг ладно, ну что-то там не так, читаем из произвольного места > памяти. Но какого хрена ядро ПОЗВОЛЯЕТ это сделать? Почему не убивает > нарушителя сразу?

там char *cache_buf[N] баальшой и не сильно динамический видть.

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

А, сорри. Зря только пугаю. Память читается похоже всё-таки мозиллы самой. Уже хорошо...

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

> 2Mons: Слушай, гордость ЛОРа, реально на что собрался тратить 500 баксов?

Я вообще-то никогда не делю неубитого медведя...
будет что-то - будет и обсуждение :)

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

> будет что-то - будет и обсуждение :)

Ловим на слове :)

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

А как ты это вообще себе представляешь?

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

Это еще вопрос, если мы увиличим размер чтения памяти, то скорее всего
два варианта 1. падение ff, 2. чтение >= чем память отведенная ff.

Если я не прав, поправьте.

//tet

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

>Это еще вопрос, если мы увиличим размер чтения памяти, то скорее всего
два варианта 1. падение ff, 2. чтение >= чем память отведенная ff.
>Если я не прав, поправьте.

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

Причем падение ff может быть вызвано даже чтением одного байта, но только с очень маленькой вероятностью.
хотя хз.

я делал цикл бесконечного чтения...

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

можно провести эксперименты.

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

Если я правильно секу фишку, ядро не должно отдать чужую память. Это же основа основ системы процессов в unix! Чужая память - чужая. Нельзя, и всё тут.

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

ocerednoj bug v javascript

(vot dlia cego i est' plugin v firefoxe developer tools - stoby bystro dustuciatsia do DISABLE JAVASCRIPT)

da i pocemu on ne mozhet sosednij TAM skanirovat' etot javascript? kohda zhe pocti sto ves' firefox iz XUL'a i javascripta sostoit:) - nikakogo razgranicenija polucetsia net;))

a esli nuzhna bezpasnost';) - laziitie po somnitelnym saitam - disable javascript ir Java

po tem sto doveriajete - mozhno dazhe i na IE :)

eto konechno ne prijatno - no vsio eto proizoshlo potomu sto vechno nacinaete izobretat' velosiped

Za4em nado bylo otdelno firefox delat' - kohda nado bylo mozillu vylizyvat' (tozhe i kde - tam do vylizyvania oshibok esio let 10, no oni vsiakuju nenuzhnuju funkcionalnost' toka lepiat' - alia macos ili windoz)

V primer - Netscape Communicator - xocesh - stav' Meiler xosh net - i polzovalis' temi zhe shared-libami :) v ciom problema byla eto sdelat' u mozille?

IMHO - nikakoj celesobraznosti v sozdanii Firefix i Thunderbird NETU

kopaite glubzhe - i naidiote rzhavyje grabli :)

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

> можно провести эксперименты.

Вы уже молодой человек на статью наэкспериментировались.

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

>Попросил конквирер представится мозиллой, пощелкал :) Как не странно >все и с ним работает :(
Конечно это-ж первое апреля, шутка такая тупая у них :)))

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

>Za4em nado bylo otdelno firefox delat' - kohda nado bylo mozillu vylizyvat' (tozhe i kde - tam do vylizyvania oshibok esio let 10, no oni vsiakuju nenuzhnuju funkcionalnost' toka lepiat' - alia macos ili windoz)

Я в принципе погу сказать зачем.
Ориентировка шла в основном на пользователей Win.
Они как привыкли:
есть "Интернет" (читай браузер со стартовой страничкой www.yandex.ru ;)
есть "Почта" (читай настроенный почтовый клиент)

Поэтопу и разбили большой и общий продукт на направления.

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

Я думаю этим и руководствовались разработчики Mozilla foundation

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

А знаете почему в Konqueror работает только с индентом мозиллы? да потому что там проверка на navigator.userAgent.match(/Gecko/)

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

При попытке чтения памяти >= 2MB, mozilla убивается напрочь!

Если мы откроем два окна (не табы), то в тест-стенде мы сможем
наблюдать информацию из 1-го из окон, при этом проскальзывает инфа не только со страничек, но и с настроек самой мазиллы!!

//tet

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

Нашедшему багу - РЕСПЕКТ!!

А вообще, если за выходные не выйдет патч или версия 1.03 - я полностью разочарусь в open source :(

Прискорбно это всё.

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

>А знаете почему в Konqueror работает только с индентом мозиллы? да потому что там проверка на navigator.userAgent.match(/Gecko/)

Вроде не работает в Konqueror. А на счет useragent:

>Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.0 (like Gecko)

т.е. попадает под navigator.userAgent.match(/Gecko/)

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

>Ну баг ладно, ну что-то там не так, читаем из произвольного места >памяти. Но какого хрена ядро ПОЗВОЛЯЕТ это сделать?
Видимо отправляется дамп памяти конкретно firefox. Те дамп памяти чужого процесса не может отправится. А так как ничего супер секретного у меня в закладках firefox не открыто получается мне совершенно пофиг.

anonymous
()

Вообще такое чувство, что JS никак не резвивается, как например
Python. 2 (я давал 5) мега страка всё. В питон есть как минимум
5-6 способов работы со строками...
читать: http://www.skymind.com/~ocrow/python_string/
(btw, lor глючит с обработкой <uri>)

olecom
()

mc на F3 по файлу туже байду показывает,,,

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

А ведь в самом деле уважаемые, это же опен сорц - исходники мозиллы доступны. Кто первым докажет исправит багу и докажет преймущество опен сорц системы расработки софта перед проприетарщиной? Или тут только умельцы языком болтать и кричать - windows mustdie ?

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

>При попытке чтения памяти >= 2MB, mozilla убивается напрочь!

Addon: два раза по 1 Мб тоже хрен считаешь. при этом 1Мб читается нормально. проверил раз 5.

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

> А ведь в самом деле уважаемые, это же опен сорц - исходники мозиллы доступны. Кто первым докажет исправит багу и докажет преймущество опен сорц системы расработки софта перед проприетарщиной? Или тут только умельцы языком болтать и кричать - windows mustdie ?

Полностью согласен с anonymous.
Если бы я был программером на сях, первым делом в bugzilla ушел бы патч.

Но я программлю последние года 2 только на скриптовых языках, perl, js, vbm etc...

а кодингом я, соответственно, не занимался уже достаточно давно.

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

имхо тут надо заранее иметь опыт ковыряния в кишках мозиллы; иначе раньше понедельника все равно багу не отыскать

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

> А вообще, если за выходные не выйдет патч или версия 1.03 - я полностью разочарусь в open source :(

На выходных точно никто ничего делать не будет, расслабься.

anonymous
()

Мдя... Прикольная новость. Из дырявого ИЕ убежали к такому же дырявому ФФ, теперь все на Оперу кинутся :).

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

2 anonymous (*) (01.04.2005 23:33:55)
Ага
встроить проверку на url. Если есть cubic - выключаем javascript и вообще пишем большЫми буквами "багов нет!"

И собираем мозилу полтора дня =)

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

>имхо тут надо заранее иметь опыт ковыряния в кишках мозиллы; иначе раньше понедельника все равно багу не отыскать

mozilla/js/src/jsregexp.c ИМХО тут копать надо...

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

> Мдя... Прикольная новость. Из дырявого ИЕ убежали к такому же дырявому ФФ, теперь все на Оперу кинутся :)....

... найдут в ней кучу дыр и - в dillo?

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

function genGluck(str){ var x = str; var rx=/end/i; x = x.replace(rx,function($1){ $1.match(rx); return ""; }); x = x.replace(/^end/,""); return x; }

Ребята, объясните плиз, чего делает этот код? построчно желательно.

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

Отвечу я, как автор :)

function genGluck(str){
var x = str; //берем входящую строку. от ее длизы зависит возвращаемая длина куска памяти.
var rx=/end/i; // создаем регулярное выражение на поиск строки "end"
x = x.replace(rx,function($1){ // запускаем замену по регулярному выражению. найденные места заменяем на результат function
$1.match(rx); // вот именно этот кусочек кода и срывает выполнение replace. т.е. он тут для того, чтобы устроить баг.
// он по сути в правильной интерпретации ничего не делает, т.к. его результат ничему не присваивается.
return ""; // возвращаем результат работы function. т.е. пустую троку. В правильной интерпретации это должно просто удалить из входной строки слово "end";
});
x = x.replace(/^end/,""); // в результирующей "сбойной" строке в начале присутствует искомое слово. это также результат действия бага, но для "чистоты" мы его убираем.
return x; // возвращаем результат.
}

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

>static JSBool
>ParseRegExp(CompilerState *state)

А может здесь
JSBool
js_ExecuteRegExp(JSContext *cx, JSRegExp *re, JSString *str, size_t *indexp, JSBool test, jsval *rval)
?
На самом деле там практически везде может быть, так не угадаешь ИМХО :)
В общем дебаггер в зубы и вперед :)

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

Может кто-нить запостить сорс этого сишника, к примеру на кубик с флагом preformatted?

а то ломает качать все сорсы ради одного файлика...

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

А Вот тут та у пацанов глаза и раскроются

>Если я правильно секу фишку, ядро не должно отдать чужую память.

Секи дальше.

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

>Может кто-нить запостить сорс этого сишника, к примеру на кубик с флагом preformatted?

Легко, только как?

ЗЫ а для кнопочек сверху JavaScript нужен :D

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