Браузер Chrome можно «уронить» простой последовательностью символов
Ошибка в браузерах Chrome и Opera на базе движка Chromium закрывает вкладку при наведении курсора на ссылку или целиком всю программу - при нажатии на ее.
Ошибка в Google Chrome и Opera
Ошибка в Google Chrome ведет к падению браузера при нажатии на ссылку с несколькими добавленными символами или закрытию вкладки при наведении на такую ссылку, рассказал в своем персональном блоге исследователь Андрис Аттека (Andris Atteka).
По словам исследователя, ошибка присутствует в Chrome 45.0.2454.99 для Windows. Также, возможно ее наличе в новой версии Chrome (45.0.2454.99) для OS X. Зарубежные обозреватели также сообщают о наличии ошибки в Linux-версии браузера.
Как уточняет Register, уязвимость также присутствует в Opera версии 32, базирующейся на движке Chromium 45. В то же время издание отмечает, что в Chrome для Android никаких проблем не замечено.
Суть ошибки
Суть ошибки заключается в следующем. При добавлении в конец URL выражения %%300, оно конвертируется в %00, так как %30 обозначает «0» в таблице ASCII. Получается следующий набор символов: оригинальный «%», конвертированный «0» и оригинальный «0» (вместе — «%00»). Таким образом, в конце строки появляется нулевой байт. Далее URL поступает в функцию GURLToDatabaseURL(), которая вызывает другую функцию — ReplaceComponents(). URL обрабатывается заново, но уже с нулевым байтом. Программа понимает, что так не должно быть, и помечает URL некорректным. Далее происходит возврат к функции GURLToDatabaseURL(), которая ожидает, что ссылка будет работать. Однако ссылка не работает, что является невозможным событием, происходит вызов DCHECK() и падение программы.
Последний раз редактировалось Eternity; 23.09.2015 в 20:15.
|