Cloudflare объяснила причину глобального сбоя 5 декабря — ошибка в Lua Обложка: Skyread

Cloudflare объяснила причину глобального сбоя 5 декабря — ошибка в Lua

Новости
Главное:

  • 5 декабря 2025 года произошёл получасовой глобальный сбой в работе сервисов Cloudflare, затронувший около трети запросов с ошибкой 500.
  • Причина сбоя заключалась в ошибке кода на языке Lua, возникшей при обновлении системы фильтрации трафика WAF для устранения критической уязвимости CVE-2025-55182.
  • Инженеры компании не учли особенности работы механизма killswitch с Lua-правилами, что привело к попытке вызова неинициализированного объекта и аварийному завершению обработчика.

Компания Cloudflare раскрыла причины масштабного сбоя, который произошёл 5 декабря 2025 года и длился около 25 минут. Во время инцидента примерно треть запросов, проходящих через инфраструктуру компании, завершалась возвращением пустой страницы с ошибкой HTTP 500. Проблема возникла в процессе планового обновления системы фильтрации трафика Web Application Firewall (WAF), разработанной на языке Lua и предназначенной для защиты от атак, включая устранение критической уязвимости CVE-2025-55182 в серверных компонентах React.

Инженеры Cloudflare, выполняя запланированные работы, увеличили размер буфера проверки трафика на прокси-серверах с 128 КБ, что привело к несовместимости с инструментарием тестирования WAF. Для устранения возможных сбоев тестовый инструмент был отключён с помощью механизма killswitch, позволяющего модифицировать конфигурацию в боевой среде без полной замены правил.

Однако в процессе применения killswitch была допущена ошибка: отключённый Lua-код, определяющий дополнительный набор правил, продолжал вызываться через метод execute, хотя объект, на который ссылался этот вызов, уже не существовал. В результате попытка обращения к неинициализированному объекту привела к аварийному завершению работы обработчика и массовому возврату ошибки 500 клиентам.

В Cloudflare отметили, что данная ошибка кода оставалась незамеченной в течение нескольких лет, поскольку язык Lua не обеспечивает строгую типизацию и проверки, типичные для более современных решений, таких как их новый прокси FL2 на Rust. Ошибка была оперативно обнаружена и исправлена — полный восстановительный процесс занял около 25 минут. Сбой затронул клиентов, использующих старый прокси FL1 с активированным набором правил Cloudflare Managed Ruleset; при этом трафик из Китая и пользователей без данной конфигурации не пострадал.

Ранее, в ноябре 2025 года, Cloudflare уже сталкивалась с серьёзным инцидентом почти пятичасового сбоя, причиной которого стало обновление конфигурации системы защиты от ботов. Таким образом, компания продолжает работу над повышением надёжности своих сервисов и совершенствованием процессов внедрения изменений.

Tagged