Вышло обновление Chrome 23.0.1271.97 с устранением критической уязвимости

Вышло обновление Chrome 23.0.1271.97 с устранением критической уязвимости

Компания Google представила корректирующий выпуск web-браузера Chrome 23.0.1271.97, в котором устранено 6 уязвимостей и представлена порция исправлений ошибок. Одной из уязвимостей присвоен статус критической проблемы, позволяющей обойти все уровни защиты браузера. Критическая проблема (CVE-2012-5142) выявлена сотрудниками Google и проявляется в выходе за границы буфера при выполнении операций по работе с историей посещений.

Три уязвимости отнесены к категории опасных проблем: две уязвимости вызваны обращением к области памяти после её освобождения и одна проблема связана с повреждением стека при декодировании специально оформленного контента в формате AAC. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила исследователям безопасности 4500 долларов (по одной премии, размером 2000$, 1500$ и 1000$).

Из не связанных с безопасностью проблем отмечается устранение ошибки с обрезанием краёв текста во всплывающем диалоге с настройками сайта. На платформе Linux устранены проблемы отображения текста в секциях input для некоторых web-приложений, что приводило к показу выделенного контента белым цветом на белом фоне. Решены проблемы с нарушением работоспособности некоторых плагинов. Устранены проблемы, специфичные для платформы Windows 8. В новой версии Chrome также произведелно обновление версии поставляемого в составе браузера плагина Adobe Flash, в котором проведена работа над ошибками, пишет opennet.ru.

Кроме того, можно отметить возникновение в понедельник интересного эффекта, который привёл к массовым крахам браузера Chrome при выполнении попытки синхронизации данных. Причиной проблемы стало изменение конфигурации балансировщика нагрузки, что привело к выходу из строя ряда компонентов инфраструктуры Google (например, наблюдалась неработоспособность Gmail). В качестве реакции система защиты от сбоев в процессе сеанса синхронизации задала в том числе и новые параметры квот для использования на стороне клиента. Подобные квоты выставляются в привязке к типу синхронизируемых данных, но в данном случае была выбрана опция использования квоты для всех типов сразу, что было некорректно разобрано браузером и привело к его краху.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru