
В американской компании Cloudflare (предоставляет услуги CDN, защиты от DDoS-атак и безопасный доступ к ресурсам и серверам DNS) раскрыли причину почти пятичасового глобального сбоя в работе своих сервисов. Проблема не в DNS, и не было внешней атаки. Оказалось, что это была ошибка в файле конфигурации системы защиты от ботов, который перед началом инцидента был обновлён инженерами Cloudflare в плановом порядке.
Технический директор Cloudflare Дэн Кнехт пояснил, что сервис «подвёл» своих клиентов и весь Интернет, добавив, что «скрытая ошибка в сервисе, лежащем в основе нашей возможности противодействия ботам, начала давать сбои после внесения нами планового изменения конфигурации... Это не было атакой».

После планового изменения конфигурации возникла скрытая ошибка в сервисе, лежащем в основе системы противодействия ботам, который начал давать сбои. В пресс-службе компании добавили, что сбой возник из-за того, что размер файла конфигурации превысил ожидаемый. Именно эта ситуация привела к сбою в работе программного обеспечения, обрабатывающего трафик ряда сервисов Cloudflare, а также к масштабному ухудшению работы клиентской сети и других сервисов компании.
«Настоящим виновником было обновление прав доступа к базе данных ClickHouse. Это небо��ьшое изменение привело к неожиданному удвоению размера файла функции управления ботами. Этот файл отправляется по глобальной сети Cloudflare каждые несколько минут. Когда системы получили версию с увеличенным размером, строгий внутренний лимит внутри основного прокси‑сервера спровоцировал панику. Эта паника и привела к масштабному шторму 5xx, который наблюдали клиенты», — рассказали в Cloudflare в postmortem по этому инциденту.
Технические детали инцидента
Сбой произошёл после изменения в структуре БД, размещённой в хранилище ClickHouse, после которого файл с параметрами для системы противодействия ботам в два раза увеличился в размере. В БД были образованы дублирующиеся таблицы, при том, что SQL-запрос для формирования файла просто выводил все данные из всех таблиц по ключу, без отсеивания дубликатов.


Созданный файл распространился по всем узлам кластера, обрабатывающего входные запросы. В обработчике, использующем данный файл для проверки на обращение от ботов, указанные в файле параметры сохранялись в оперативной памяти и для защиты от излишнего расхода памяти в коде был предусмотрен лимит на максимально допустимый размер файла. В обычных условиях фактический размер файла был значительно меньше выставленного ограничения, но после дублирования таблиц превысил лимит.
Проблема оказалась в том, что вместо корректной обработки превышения лимита и продолжения использования прошлой версии файла с информированием системы мониторинга о внештатной ситуации, в обработчике срабатывало аварийное завершение, которое блокировало дальнейший проброс трафика. Ошибка была вызвана использованием в коде на языке Rust метода unwrap() с типом Result.

Когда значение Result имеет состояние "Ok", метод unwrap() возвращает связанный с этим состоянием объект, но если результат не является успешным - вызов приводит к аварийному завершению (вызывается макрос "panic!"), . Обычно unwrap() применяется в процессе отладки или при написании тестового кода и не рекомендован для использования в рабочих проектах.

Инженеры добавили, что ситуация усложнялась тем, что файл конфигурации обновлялся каждые пять минут. Иногда он был верным, иногда — нет. Эта закономерность на какое-то время навела команду на мысль, что они, возможно, подверглись атаке с большим объёмом дан��ых (fluctuating high volume attack). Как только инженеры поняли, что каждый узел начал создавать нерабочую версию, след привел к искажённому файлу управления ботами. В Cloudflare остановили распространение файла, отправили заведомо исправный файл, перезапустили основные прокси-сервисы, и трафик начал восстанавливаться. Пострадали рабочие KV, Cloudflare Access, Turnstile и некоторые элементы панели управления.
В Cloudflare описывают инцидент как самый серьёзный сбой с 2019 года. Компания планирует такие изменения, как усиление защиты от приёма конфигурации, добавление дополнительных аварийных выключателей и снижение перегрузки системы в условиях паники.

Вечером 18 ноября 2025 года из-за сбоя в Cloudflare перестали работать многие сайты, платформы и облачные сервисы по всему миру, включая Indeed, Grindr, Uber, Canva, Spotify, некоторые соцсети, игровые площадки, а также ChatGPT.

Ранее в инженерной команде Cloudflare раскрыли причину часового глобального сбоя в работе публичного DNS-резолвера 1.1.1.1 и сетевого сервиса Gateway plain text DNS. Инцидент произошёл 14 июля 2025 года и затронул всех пользователей. В качестве временной меры для решения сетевых проблем клиентам Cloudflare и всем остальным пользователям предлагалось выполнять DNS-запросы с помощью другого провайдера. Сбой произошёл из-за неправильной настройки устаревших систем, используемых для поддержки инфраструктуры, которая объявляет IP-адреса Cloudflare в Интернете.
