Специалист по безопасности Пранав Хиварекар (Pranav Hivarekar) рассказал в своем блоге, что в начале июня 2016 года он обнаружил критическую уязвимость в Facebook. Баг позволял удалить из социальной сети любое видео, невзирая на то, кому оно принадлежит.
Проблема, обнаруженная исследователем, возникла из-за новой функции, которую разработчики Facebook представили в начале июня. Эта функция позволяет размещать видео прямо в комментариях к постам.
Хиварекар заметил, что вставка видеороликов в комментарии происходит, основываясь на ID видео. Изучив работу API, исследователь понял, что с легкостью может удалить из социальной сети абсолютно любой ролик.
Для удаления чужого видео было достаточно написать комментарий, приложив к нему видеоролик, то есть использовав чужой video-id. Затем нужно было удалить этот комментарий. Из-за ошибки вместе с комментарием удалялось и само видео. Дело в том, что во время удаления Facebook не проверял, какому именно пользователю принадлежит видеоролик, и кто его загрузил. Удаление любого комментария, содержавшего определенный video-id, расценивалось как удаление самого видео. То есть разработчики социальной сети предполагали, что пользователи будут загружать и прикладывать к комментариям исключительно свои собственные видеозаписи.
«Данный баг скорее демонстрирует уязвимость в логике, нежели относится к уязвимостям типа RCE, SSRF и так далее, которые мы видим каждый день», — пишет исследователь.
Исследователь уведомил Facebook о проблеме 11 июня 2016 года, спустя два дня после добавления новой функции. Для первичного устранения бага разработчикам Facebook понадобилось всего 23 минуты, а спустя 11 часов вышел полноценный патч.
Хиварекар пишет, что получил пятизначное вознаграждение по программе bug bounty за обнаружение данной проблемы.