Эксперты G-SEC опубликовали
подробности
уязвимости
, которая присуща большинству браузеров, и в результате которой
браузеры либо вылетают совсем, либо используют столько памяти, что компьютер
становится практически полностью непригодным к использованию.

Смысл уязвимости довольно прост. Используя DOM JavaScript, создай меню выбора
на веб-странице, и элемент для такого выбора. Затем установи для него очень
большое значение длины, и ты получишь процесс непрерывного выделения памяти.
Атрибут длины указывает на то, сколько пунктов должен содержать элемент выбора,
и по идее должен быть доступен только для чтения, однако может быть и
записываемым.

Пример кода
свидетельствует о том, что этой проблеме подвержены не все браузеры. Так, при
тестировании в Windows Vista вылетел лишь Internet Explorer 8. Firefox, Safari и
Chrome остались незатронутыми, а Opera использовала много памяти, но при этом
сохранила работоспособность. По данным G-SEC, проблема будет полностью устранена
в следующей версии Opera.

Специалисты G-SEC отмечают, что Firefox 2.0.19 и 3.0.5 также не подвержены
этой проблеме, однако более ранние версии будут использовать всю доступную
память, после чего вылетят. Аналогичным образом поведут себя и ранние версии
Chrome и Safari. В Ubuntu с Konquerer вылетает либо сам браузер, либо система
целиком, что приводит к перезагрузке, вызванной тем, что система управления
памятью Ubuntu "убивает" случайный процесс в памяти.

Стоит отметить, что исправить баг в Opera создатели браузера хотели еще в
версии 9.64, однако не сделали этого. В свою очередь, Microsoft планирует
исправить баг в Internet Explorer 9, у которого, возможно, будет новый движок
JavaScript. Помимо этого, уязвимости подвержено большинство браузеров мобильных
устройств (iPhone, Android и Symbian), а также игровых консолей (Wii и PS3),
хотя в iPhone и устройствах на базе Android с последней версией движка WebKit
эта проблема решена.



Оставить мнение