Бразильский программист получил от Facebook рекордное вознаграждение за все время существования программы оплаты за баги.
Уязвимость позволяет считывать любые файлы на веб-сервере, в том числе файл с паролями системного администратора, и исполнять удаленный код. Отчет пришел в ноябре прошлого года. Он был хорошо написан и содержал образец программы для проверки (proof-of-concept), так что отдел безопасности смог легко воспроизвести сценарий атаки и убедиться, что дыра действительно существует. Именно таким образом Facebook рекомендует оформлять отчеты, чтобы надеяться на беспроблемное получение награды.
Компания быстро выпустила патч для библиотеки парсинга XML, исправляющий ошибку XXE (XML External Entity). Собственно, патч умещался в одну строчку.
Патч накатили на все серверы Facebook, и через 3,5 часа после получения отчета уязвимость была закрыта. На следующем этапе специалисты провели глубокий анализ причин, по которым была возможность исполнения постороннего кода, поскольку возможно было существование сопутствующих уязвимостей. Но ничего найдено не было и первоначальный «горячий» патч решено было оставить в силе.
После этого автору первоначального отчета - бразильскому программисту Реджинальдо Силве (Reginaldo Silva) - направили письмо с благодарностью за проделанную работу и обещанием награды. В результате обсуждения отдел безопасности Facebook признал, что это очень серьезный баг и вознаграждение за него должно быть большим. Отдел безопасности направил свои рекомендации по вознаграждению менеджерам - и сейчас те приняли решение, установив сумму $33 500, рекордную за все время существования программы оплаты за баги Facebook, которую запустили в 2011 году.
Описание уязвимости можно почитать в блоге Силвы. Он говорит, что уязвимость XXE в обработке OpenID он нашел еще в сентябре 2012 года, но решил не публиковать ее в открытом доступе, потому что баг присутствовал практически повсеместно. Он начал сообщать каждой компании в отдельности (Drupal, Google, StackOverflow). От Google получил в 2013 году вознаграждение $500, а недавно Силва обнаружил аналогичную XXE на форме восстановления забытого пароля Facebook.