Сообщив об уязвимости в безопасности веб-браузера Chrome, представители Microsoft проследили за ходом её устранения и обвинили Google в некорректной последовательности действий при работе с Open Source-проектом.
14 сентября специалисты по безопасности из компании Microsoft обнаружили серьёзную уязвимость в Chrome — CVE-2017-5121, — сообщив об этом Google с одновременной передачей эксплоита для возможности удалённого исполнения кода (RCE exploit). Авторам этого отчёта Google подарила 7500 USD, а вместе с другими багами, найденными в Microsoft в результате проведённого ими комплексного исследования работы песочниц в Chrome, общая премия составила 15 837 USD. Но куда занимательнее в этой истории оказался взгляд Microsoft на дальнейшие действия инженеров Google.
В целом работа Google над уязвимостью CVE-2017-5121 «Out-of-bounds access in V8» в Chrome произвела хорошее впечатление, потому что её исправление было опубликовано уже через 4 дня после первого сообщения*, а исправленная сборка продукта появилась через 3 дня после этого. Однако проблема, которую увидели в Microsoft в этом процессе, заключается в том, что исходный код исправления был опубликован в GitHubдо того, как эти обновления стали доступны для пользователей приложения: «Хотя исправление этой проблемы не давало мгновенного доступа к эксплуатации соответствующей уязвимости, в других случаях всё могло бы пройти не так гладко», — пишет в блоге Windows Security Джордан Рабет (Jordan Rabet) из команды Microsoft Offensive Security.
В Microsoft делают заключение, что, пусть такое поведение и может быть естественным для Open Source-проекта, оно создаёт проблемы, когда злоумышленники узнают об уязвимостях до публикации патчей: «Конкретно в этом случае стабильный канал Chrome оставался подверженным уязвимости около месяца после того, как коммит появился в Git. Этого времени более чем достаточно для желающих эксплуатировать проблему. Некоторые компоненты Microsoft Edge, такие как Charka, тоже Open Source-проекты. Поскольку мы убеждены, что важно поставлять исправления клиентам до того, как о них становится известно, мы обновляем Git-репозиторий Chakra только после того, как патч доставлен».
* Скорее это исправление (см. иллюстрацию) корректно называть workaround, а не полноценным патчем. Проблема возникала при оптимизации с использованием анализатора Escape analysis в TurboFan — JIT-компиляторе JavaScript-движка V8. «Глобальное» исправление подобных уязвимостей, как отмечают в Microsoft, появится, когда в Google завершат работы над функцией изоляции сайтов, доступной пока только в экспериментальном режиме.