Программист Андрей Леонов нашел на Фейсбуке уязвимость, позволявшую выполнять код на серверах компании и получил $40 тысяч – рекордную награду компании за подобное сообщение.
Ошибка нашлась в процессе обработки снимков на серверах Фейсбука. Для уменьшения их объема сервис пользуется библиотекой ImageMagick. Если пользователи делятся ссылками, картинки к постам Фейсбука автоматически ставятся оттуда.
Уязвимость найдена в процессе загрузке файлов: ImageMagick определяет их тип (JPG, PNG, GIF) по первым байтам файла, что дает злоумышленникам возможность маскировать свои файлы с вредоносными кодами под картинки, подставляя первые байты, совпадающие с файлами GIF, JPG и т. д. Уязвимость существовала с прошлого апреля.
Андрей Леонов создал и разместил на своем ресурсе такой замаскированный файл, расшарил страницу с ним на Фейсбуке, сервер забрал файл и выполнил прописанный в нем код. В октябре программист сообщил о баге в Фейсбук и после обсуждения получил награду.
Прошлое максимальное вознаграждение в $33,5 тысячи выплачено Фейсбуком в 2014 году Реджиналдо Силве за обнаружение уязвимости, позволявшей считывать на сервере любые файлы.