Facebook Notes позволяет внедрять тег <img> в свои сообщения. Если таким образом вставить картинку, то Facebook обязательно скачает файл с внешнего сайта и закэширует его. Однако, с помощью специфических параметров можно сделать так, что изображение не будет закэшировано, так что Facebook каждый раз будет заново обращаться к сайту, генерируя поток запросов HTTP GET наподобие DDoS-атаки.
Этот баг обнаружил chr13, автор сайта A Programmer's Blog, о чём сообщил в компанию Facebook 3 марта 2014 года. Однако, компания Facebook отказалась признавать наличие бага и выплачивать вознаграждение. Поэтому сейчас информация опубликована в открытом доступе.
Во-первых, для DDoS-атаки нужно сгенерировать список уникальных тегов, каждый раз файл будет скачан, хотя на самом деле используется один и тот же файл.
<img src=http://targetname/file?r=1></img>
<img src=http://targetname/file?r=2></img>
..
<img src=http://targetname/file?r=1000000></img>
Во-вторых, при публикации заметок Facebook Notes следует использовать мобильную версию сайта m.facebook.com.
Далее создаём одну или несколько заметок со списком тегов, сгенерированным ранее. Затем наслаждаемся, как Facebook начинает «нагибать» сайт жертвы. К нему отправятся миллионы запросов с сотен серверов Facebook.
Тестируя баг, исследователям удалось удерживать трафик 400 Мбит/с к сайту жертвы в течение 2-3 часов. Логи показали, что в атаке использовались 127 серверов Facebook.
Единственным ограничением, которое есть на Facebook Notes — это ограничение на создание более 100 заметок в течение небольшого промежутка времени. Но даже с таким ограничением уязвимость всё равно предоставляет возможность для успешной атаки.
Во время повторного тестирования исследователи добились трафика 895 Мбит/с, указав в тегах 13 файлов PDF размером по 13 МБ, которые были скачаны серверами Facebook около 180 000 раз. Количество участвовавших серверов — 112.
Chr13 заметил, что для DDoS-атаки можно использовать не только серверы Facebook, но и Google.