The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Многочасовой сбой Cloudflare оказался результатом некорректной обработки ошибок

19.11.2025 07:34

Компания Cloudflare опубликовала разбор одного из крупнейших инцидентов в своей инфраструктуре, из-за которого вчера большая часть сети доставки контента оказалась неработоспособной на протяжении более 3 часов. Сбой произошёл после изменения в структуре БД, размещённой в хранилище ClickHouse, после которого файл с параметрами для системы противодействия ботам в два раза увеличился в размере. В БД были образованы дублирующиеся таблицы, при том, что SQL-запрос для формирования файла просто выводил все данные из всех таблиц по ключу, без отсеивания дубликатов.


   SELECT
     name,
     type
   FROM system.columns
   WHERE
     table = 'http_requests_features'
   order by name;


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

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

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





  1. Главная ссылка к новости (https://blog.cloudflare.com/18...)
  2. OpenNews: Сбой в доменной зоне RU из-за ошибки при замене ключей DNSSEC
  3. OpenNews: Сбой системы хранения привёл к недоступности более 44 серверов проекта Debian
  4. OpenNews: Компания Cloudflare раскрыла сведения о взломе одного из своих серверов
  5. OpenNews: Сбой антиспам-системы привёл к коллапсу в репозитории NPM
  6. OpenNews: Ошибка при настройке BGP привела к 27-минутному сбою в работе Cloudflare
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64282-cloudflare
Ключевые слова: cloudflare, bug, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (34) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, 1 (??), 07:47, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как защищать свои сайты и доменьчики от ботов без клауды и подобных?
     
     
  • 2.3, анон (?), 07:48, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Как минимум самохостинг go-away или anubis
     
     
  • 3.13, Аноним (13), 07:56, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Из-за anubis много раз не мог попасть на lore.kernel.org, в Firefox зависал или не догружался скрипт. Только недавно починили.
     
     
  • 4.19, Аноним (-), 08:05, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > в Firefox зависал или не догружался скрипт

    Типичная проблема недобраузеров. Радуйтесь что вообще исправили.
    Если использовать нормальных хром, то такого не бывает практически никогда.

     
  • 4.21, Анонимно (ok), 08:06, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    4 месяца cloudflare не может починить прохождение капчи в любых версиях Firefox для Linux > 141 версии. Бесконечно обновляет свою капчу
     
     
  • 5.30, Аноним (30), 08:19, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это винится сменой айпи на американский.
     
  • 4.22, Аноним (22), 08:06, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а лично я намного чаще не мог подключиться к сайтам как раз из-за Cloudflare, чем из-за Anubis. Из под Tor'а вообще вкуснотища, бесконечные капчи.
     
     
  • 5.25, Аноним (-), 08:09, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Из под Tor'а вообще вкуснотища, бесконечные капчи.

    Всем известно (с), что тором пользуются только драгдиллеры, любители ЦП и Столлмана.
    Поэтому правильно делают что не пускают таких к себе на сайты.

     
  • 3.23, morphe (?), 08:06, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Как минимум самохостинг go-away или anubis

    Самохостинг это хорошо, однако они спасут только от L7 атак, когда корявый (других не бывает) PHP код по 20 SQL запросов шлёт в ответ на запрос от юзера

    И то не факт, в случае если сайт изначально полумёртвый под нагрузкой из 10 юзеров, однако тут даже cloudflare мало поможет

    А от L4, от которого защита тебе потребуется сильнее, самохостинг тебя не спасёт, и надо уже иметь сеть которая способна удар принять и трафик отфильтровать до твоей машины

    Однако с этим способны справляться уже все облака, и можно спрятать дедики за реверс-прокси на облаках потенциально того же самого провайдера

     
  • 3.24, Аноним (24), 08:08, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > anubis

    Не надо пихать это вредоносное ПО от анимешников.

     
  • 2.7, name (??), 07:52, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ddos guard
     
  • 2.10, Bottle (?), 07:54, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Клаудтвари сами же этих ботов и запускают.
     

  • 1.2, morphe (?), 07:48, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Опять во всём Rust виноват
     
     
  • 2.16, morphe (?), 08:01, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А было бы на си - данные спокойно записались бы за пределами выделенного буфера, переписали несколько случайных структур, и все были бы счастливы
     
     
  • 3.26, Аноним (26), 08:10, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А мы не знаем что было бы, если было бы на Си. Но знаем что уже было, когда было (и до сих пор есть, а значит будет еще) на расте
     
     
  • 4.32, Аноним (32), 08:27, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >А мы не знаем что было бы, если было бы на Си

    А смешно и тонко ты над сишниками подшутил с их undefined behavior.

     
  • 3.27, Анонимусс (-), 08:14, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > переписали несколько случайных структур

    ...запороли бы данные, получили бы неконсистентное состояние, выполнили бы случайный код...

    А может все было бы хорошо. Но для того чтобы это узнать, нужно чтобы код был написан на сишке. Вот когда на си перепишут, тогда и поговорим.

     

  • 1.4, Аноним (4), 07:49, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот такого от раста я не ожидал!
     
  • 1.5, Кошкажена (?), 07:50, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Кода на си становится все меньше...
    Новости про ошибки в расте появляются все чаще...

    Случайность? Не думаю.

     
  • 1.6, Аноним (26), 07:50, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Ошибка была вызвана использованием в коде на языке Rust метода unwrap() с типом Result.

    А ведь даже тут растофилы хвасталась, что вон в Клаудфларе кучу кода пишут на расте, а они 10000% интернета фильтруют

     
  • 1.8, Кошкажена (?), 07:53, 19/11/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     
  • 1.9, Аноним (-), 07:53, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отлично!
    Благодаря unwrap() получился DoS, а не выполнение стороннего кода, как в соседней новости, и взлом серваков! Всего 3 часа отсутствия инета, ошибка найдена и исправлена.

    Так держать клаудфаря! Главное - безопасноть :)

     
  • 1.11, Аноним (30), 07:54, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Типичный раст, постоянные падения это его коронная фишка. Низкая культура разработки, что поделать.
     
     
  • 2.17, Аноним (-), 08:02, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > постоянные падения это его коронная фишка

    Вообще-то падения стали мемом плазмы, которая совсем не на расте.
    "Низкая культура разработки, что поделать" (с)

     
     
  • 3.28, Аноним (30), 08:17, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У меня до сих пор падает каждый день, файловые дескрипторы кончаются. Исправлять, конечно, не спешат, как explicit sync добавили -- это сплошной треш каждый день, и если с иксами просто перезапускалось, то с вейландом падает и всё. Но это у меня systemd нет, перезапустить, видимо. Видишь, тут ничего не поделать. А вот с падениями ripgrep ты вполне можешь что-то сделать.
     

  • 1.12, Oldi (?), 07:56, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Непонятно как возникла и расползалась этот tablespase
     
  • 1.14, Анонимусс (-), 07:57, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Сбой произошёл после изменения в структуре БД, размещённой в хранилище
    > ClickHouse, после которого файл с параметрами для системы
    > противодействия ботам в два раза увеличился в размере.

    Мда... Они не тестируют миграцию БД перед выкаткой на прод?
    Изменения в структуре БД это не два байта отослать, тут нужно быть аккуратным.

     
     
  • 2.20, Аноним (26), 08:05, 19/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > тут нужно быть аккуратным.

    Ой, хоспади... Там раст везде он всё проверит сам и по рукам надаёт если делаешь что-то не так, не надо больше думать... да не о чем не надо больше думать. Да, даже во время миграции БД

     

  • 1.34, AleksK (ok), 08:30, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Офигеть, Cloudflare использует ClickHouse от Яндекса.
     
  • 1.36, Аноним (36), 08:39, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    У интернета два врага — Раст и вайбкодинг.
     
  • 1.37, Псевдонимус (?), 08:41, 19/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Опять ПедеRast)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру