Уязвимость в Cloudflare привела к утечке конфиденциальной информации клиентов
В одной из крупнейших сетей доставки контента Cloudflare выявлена ошибка, которая привела к утечке неинициализированных отрывков оперативной памяти прокси-серверов, которые могли содержать конфеденциальные данные, фигурирующие при обработке запросов на том же сервере других сайтов. Проблема выявлена сотрудниками Google и получила кодовое имя "cloudbleed" по аналогии с уязвимостью "Heartbleed".
Утечки совершались с 22 сентября 2016 года по 18 февраля 2017 года и приводили к появлению в открытом доступе такой информации, как пароли, закрытые сообщения, ключи для доступа к API и другие конфиденциальные данные. Конфеденциальные данные утекали в составе ответов на случайные запросы, например, проведенные с 13 по 18 февраля измерения показали, что ежедневно отдавалось 100-200 тысяч страниц с частями неинициализированных блоков памяти, которые могли содержать приватные данные других сайтов.
Хуже всего, что утекающие в результате ошибки данные оседали в кэше поисковых систем и могли быть выловлены злоумышленниками через отправку типовых поисковых запросов (Google уже вычистил из кэша проблемные страницы). По предварительной оценке в числе вероятных жертв проблемы насчитывается около 4.3 млн доменов, среди которых многие известные сайты, в том числе отечественные, которые были клиентами Cloudflare.
Причиной утечки стала ошибка в реализации парсера разметки HTML, применяемого для разбора и замены содержимого страниц (например, замены ссылок с http:// на https://). Из-за ошибки к ответу на запрос присоединялась неинициализированный кусок памяти, который содержал данные, используемые в результате обработки других запросов на том же прокси-сервере.