Российский программист нашел в фейсбуке уязвимость на 40 тысяч долларов
Российский программист Андрей Леонов нашел в фейсбуке уязвимость, которая позволяла выполнять код на сервере компании. За сообщение об ошибке ему заплатили 40 тысяч долларов. Это рекордная награда за обнаруженную уязвимость.
Андрей Леонов нашел ошибку в обработке фотографий на сервере Facebook. Для уменьшения объема изображений компания использует библиотеку ImageMagick. Когда пользователь хочет поделиться ссылкой, фейсбук автоматически забирает с этой страницы картинку к посту.
Уязвимость состоит в следующем. При загрузке файла ImageMagick проверяет, что это за картинка — JPG, GIF или PNG. Обычно тип файла проверяется по первым байтам файла. Это позволяет злоумышленникам замаскировать файл со своим кодом под картинку: достаточно подставить правильные первые байты JPG или GIF. Эта уязвимость известна с апреля 2016 года.
Андрей Леонов создал такой замаскированный файл и разместил его у себя на сайте. Когда он расшарил страницу через фейсбук, сервер забрал этот файл и выполнил код из него. В октябре 2016 года Леонов сообщил о своей находке в Facebook. После обсуждения с сотрудником социальной сети ему выплатили награду.
Вознаграждение за обнаруженную Андреем Леоновым ошибку самое большое из тех, что выплачивал Facebook. В 2014 году Реджиналдо Силва получил от компании 33,5 тысячи долларов. Силва нашел уязвимость, которая позволяла считывать любые файлы на сервере.