12 月 6 日消息,Cloudflare 于 12 月 5 日突发网络故障,导致部分服务在全球范围内出现约 25 分钟中断。
Cloudflare 官方今日发布了有关此次事故的调查报告。该起事故从 08:47 UTC 开始,至 09:12 完全恢复,约 28% 的 HTTP 流量受到影响。
此次故障并非由网络攻击或恶意活动引发,而是在应对 React Server Components 相关的行业级安全漏洞时,内部对请求体解析逻辑进行调整,引发连锁错误。
事故出现前,Cloudflare 正逐步扩大 Web 应用防火墙(WAF)用于检测请求体内容的缓冲区,从原有的 128KB 提升至 1MB,以协助客户缓解 CVE-2025-55182 漏洞风险。
升级过程中,团队发现一款内部测试工具无法支持新的缓冲区大小,随后决定通过另一套全球配置系统关闭该工具。由于该系统会在短时间内向整个服务器集群推送配置,而非按区域逐步发布,这一变更迅速影响了全网。
在 Cloudflare 的旧版 FL1 智能体中,该关闭操作在特定条件下触发了规则模块中的旧有代码缺陷,导致系统在处理名为“execute”的规则动作时出现 Lua 运行错误,最终返回 HTTP 500 状态码。
[lua] Failed to run module rulesets callback late_routing /usr/local/nginx-fl/lua/modules/init.lua:314 attempt to index field 'execute' (a nil value)
出现问题的规则原本用于内部规则验证机制,关闭后系统在处理结果时访问了不存在的对象,从而触发异常。Cloudflare 表示,该代码问题已存在多年,而在新版基于 Rust 的 FL2 智能体中不会出现。
if rule_result.action == "execute" then rule_result.execute.results = ruleset_results[tonumber(rule_result.execute.results_index)]end
故障确认后,Cloudflare 于 09:12 进行回滚,所有服务恢复正常。受影响的客户主要是仍使用 FL1 智能体并启用 Cloudflare 托管规则集的用户;中国大陆网络服务不受影响。
Cloudflare 也回顾了 11 月 18 日发生的另一场类似事故。公司表示,两次故障均由全网快速传播的配置更改触发,这暴露出部署机制在安全更新场景下的脆弱性。Cloudflare 强调,目前正在推进多项系统性工程,包括增强发布机制、完善故障旁路流程、在关键数据平面启用更安全的“Fail-Open”模式等,但这些改进尚未完全落地。官方计划在下周公布更详尽的韧性建设方案。
Cloudflare 表示已冻结所有网络变更,直至建立更安全的回滚和验证机制,并再次就此次事件对客户和互联网造成的影响致歉。