Специалист в области кибербезопасности Винот Кумар получил от Facebook $20 000 за сообщение об уязвимости DOM XSS, которую можно использовать для получения контроля над аккаунтами пользователей.
По словам эксперта, брешь находилась в функции window.postMessage(), предназначенной для безопасного взаимодействия между объектами окна.
Кумар обнаружил, что Facebook Login SDK отправляет исходный пейлоад ифрейму v6.0/plugins/login_button.php. А сам ифрейм содержит URL кнопки «Продолжить через Facebook».
Когда пользователь кликает по этой кнопке, ссылка из пейлоада postMessage выполняется внутри ифрейма, благодаря чему открывается возможность для выполнения JavaScript-кода на Facebook.com.
Исследователь выявил два способа эксплуатации этого бага, один из которых подразумевает открытие всплывающего окна и коммуникации с ним, а второй — задействует ифрейм.
В случае успешной эксплуатации атакующий мог перехватить cookies сессии пользователя и получить контроль над его учётной записью. Кумар записал видео, в котором демонстрирует наличие бреши: