Израильский ИБ-специалист Зохар Шахар (Zohar Shachar) рассказал о том, как еще в 2019 году он нашел XSS-уязвимость в Google Maps, а затем обнаружил, что в Google не сумели исправить ее с первого раза.
Проблема была связана с функцией Google Maps, которая позволяет пользователям создавать собственные карты. Такие карты можно экспортировать в различных форматах, включая Keyhole Markup Language (KML), который основан на XML и обычно используется для отображения географических данных в Google Earth и так далее.
Изучая ответ сервера при экспорте карты с использованием KML, исследователь обнаружил XML, содержащий, среди прочего, открытый тег CDATA. Шахар попробовал закрыть тег с помощью специальных символов и пришел к выводу, что добавление «]]>» в начало пейлоада (в начало map name) помогает выйти за пределы CDATA и добавить произвольный XML-контент.
Все это в итоге ведет к XSS-уязвимости. Так, злоумышленник мог создать новую карту в Google Maps, оснастить ее XSS-пейлоадом, сделать общедоступной и экспортировать как файл KML, а затем скопировать ссылку для загрузки. После хакеру оставалось лишь отправить ссылку жертве и дождаться, когда та кликнет по ней, запустив эксплоит и выполнив вредоносный код в своем браузере.
Исследователь незамедлительно сообщил о проблеме специалистам Google, но история на этом не закончилась. Когда Шахара уведомили, что уязвимость исправлена, а он получает за обнаружение ошибки 5000 долларов США, он решил проверить, так ли это и с удивлением увидел, что весь «патч» заключался в том, что разработчики добавили еще один тег CDATA. То есть, чтобы обойти два тега CDATA и это исправление, нужно было лишь закрыть теги дважды, и эксплоит снова работал.
Сомневаясь, что правильно понимает происходящее (такой простой обход патча показался Шахару маловероятным), исследователь, тем не менее, снова связался с Google и объяснил, что исправление, похоже, не работает. Как выяснилось, Шахар оказался полностью прав. Всего через два дня ошибку исправили полностью, а исследователю выплатили еще 5000 долларов США, так как технически он обнаружил еще одну аналогичную проблему.
«После инцидента с обходом исправления в Google Maps я всегда повторно проверяю патчи, даже для самых простых вещей, и это окупается. Искренне призываю всех вас делать то же самое», — пишет исследователь.