- PVSM.RU - https://www.pvsm.ru -

Баг движка Google Chrome с падением от 16 символов уже используют для создания игр

Баг движка Google Chrome с падением от 16 символов уже используют для создания игр - 1 [1]19 сентября получила [2] огласку информация о баге Chrome. Браузер аварийно завершается, если в адресную строку ввести последовательность из 16 символов. В Google уже знают о баге, хотя обнаруживший не получил денежное вознаграждение — это не уязвимость безопасности. Природа ошибки связана с некорректной обработкой нулевого байта. Атаку можно сравнить с похожим случаем [3], когда Skype после вставки 8 символов ломался полностью: клиент завершался и больше не запускался. Chrome понадобилось 16, ровно в два раза больше.

Баг работает не только в самом браузере Chrome, но и в программах, использующих его движок — это как другие браузеры и сборки Chromium, так и Steam, клиенты мессенджера Slack и так далее. Для падения браузера нужно вставить ссылку в адресную строку, но также сработает наведение указателя мыши на гиперссылку с проблемным кодом. Последний факт уже используют для создания игр, которые наказывают падением браузера.

Комбинация из 16 символов — это http://a/%%30%30. При её вставке в адресную строку или при наведении указателя мыши на гиперссылку, ведущую на неё, происходит [4] следующее:

  • Последовательность в конце ссылки преобразуется в %00, а 0x30 — это ASCII-код для 0. На конце УРЛ появляется нулевой байт.
  • УРЛ передаётся в GURLToDatabaseURL [5](), которая вызывает ReplaceComponents [6]().
  • УРЛ снова обрабатывается, обнаруживается нулевой байт. Его там быть не должно, поэтому УРЛ помечается как недействительная.
  • Ссылка возвращается GURLToDatabaseURL(), со стороны которой ожидается валидность УРЛ. Происходит вызов spec [7]().
  • УРЛ невалидна. Вызов DCHECK [8]() приводит к падению.

При наведении курсора мыши над проблемной гиперссылкой происходит примерно то же самое, хотя в этом случае УРЛ обрабатывается в другой части браузера. Но и здесь ожидается только корректный адрес.

Вероятно, этот баг скоро исправят, но некоторые пытаются привлечь к нему внимание с помощью небольших игр-демонстраций. Пощекотать себе нервы могут пользователи следующих веб-обозревателей: Google Chrome, Opera, «Яндекс.Браузера» и других хромоподобных браузеров на движке Blink. В Microsoft Edge, Internet Explorer и Mozilla Firefox игры не работают. Перед открытием одной из двух следующих страниц рекомендуется сохранить работу и убедиться в том, что не будут потеряны важные данные.

Первая игра носит название %%30%30 [9]. Это лабиринт, созданный обычным HTML-кодом. Он выглядит как веб-страница с кликабельными картинками, по которым нужно провести указатель мыши. Нужно располагать курсор строго над эмодзи с мишками, не натыкаясь на деревья, иначе браузер упадёт.

https://github.com/szhu/3030/tree/master [9]

Так должен выглядеть процесс игры (2,26 МиБ)

Баг движка Google Chrome с падением от 16 символов уже используют для создания игр - 2 [10]

Первый пример простой, но скучный. Второй [11] куда более интерактивен и жесток. Это веб-сайт, на котором кликабельная точка гоняется за курсором мыши. Если она его настигнет, то попадёт в фокус, и браузер упадёт. Достижения в игре регистрирует счётчик очков. К недостаткам игры можно отнести низкую скорость движения и предсказуемость поведения «хищника».

http://linkofdeath.com/ [11]

Автор: atomlib

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/igry/99339

Ссылки в тексте:

[1] Image: https://habrastorage.org/files/12b/987/6f9/12b9876f988e412584b12762df26eae8.png

[2] получила: http://habrahabr.ru/post/267229/

[3] похожим случаем: http://habrahabr.ru/post/259393/

[4] происходит: http://www.theregister.co.uk/2015/09/20/chrome_url_crash/

[5] GURLToDatabaseURL: https://github.com/adobe/chromium/blob/master/chrome/browser/history/url_database.cc#L62

[6] ReplaceComponents: https://chromium.googlesource.com/chromium/src/+/32352ad08ee673a4d43e8593ce988b224f6482d3/url/gurl.cc#254

[7] spec: https://github.com/scheib/chromium/blob/master/url/gurl.cc#L174

[8] DCHECK: https://www.chromium.org/developers/coding-style#TOC-CHECK-DCHECK-and-NOTREACHED-

[9] %%30%30: https://github.com/szhu/3030/tree/master

[10] Image: https://habrastorage.org/files/dd3/72c/b9d/dd372cb9d2624b4a9eafe8ac2cc89434.gif

[11] Второй: http://linkofdeath.com/

[12] Источник: http://geektimes.ru/post/262882/