Уязвимость в Mozilla Firefox // 01.04.05 14:29
Степень критичности определять не берусь, но то, что эта уязвимость позволяет получить доступ к памяти браузера, уже само по себе является критичным.
[Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2005/04/01.html]
Проявляется данная ошибка при вложенном вызове регулярного выражения в JavaScript'e и определенном построении строки, передаваемой регулярному выражению.
Длина выдаваемого куска памяти зависит от длины переданной строки.
т.е. например, если мы передаем 16 байт, то получим в результате 10 байт участка памяти (т.е. общая формула n-6)
Пример:
var x="xxxxxxxxxxend"
var rx=/end/i;
x = x.replace(rx,function($1){
$1.match(rx);
return "";
});
в результате в переменной x мы будем иметь 10 байт участка памяти браузера.
(Размер переменной будет 13 байт, но первые 3 байта будут "end", т.е. наше ключевое слово, которое мы использовали в запросе.)