Описание одной из найденных уязвимостей, позволяющей выполнить произвольный JS код в рамках WebView и в некоторых особенно запущенных случаях получить доступ к привилегированным API-интерфейсам, предоставляемых приложением.
Сработало интересное поведение WebView, которое при настройке по умолчанию, запрещает иметь несколько окон, WebSettings.setSupportMultipleWindows(). Такая настройка позволяет из iframe обходить политику Same-Origin и выполнять произвольный JavaScript сразу на вашей странице.
Эта уязвимость затрагивает приложения, которые используют WebView с настройками по умолчанию и которые работают в системах с версией Android WebView до 83.0.4103.106.
Как защититься, если не уверены, что работаете на пропатченной версии:
1. Включите поддержку нескольких окон (WebSettings.setSupportMultipleWindows() установить в true). При этом поведение и внешний вид может остаться аналогичным и незаметным для пользователя.
2. Загружаете в WebView только доверенный контент со своих серверов.
Интересная находка, которая затрагивает сразу и приложения, использующие WebView и сами браузеры...
- Пора автоматизировать и на h1?)
Эта и другие актуальные новости из области безопасности мобильных приложений в авторском канале - Mobile AppSec World.