Cloudflare 近日发布详细事故报告,披露2025年9月12日导致其控制面板和API服务中断超过一小时的重大故障。经调查,此次事件源于控制面板软件漏洞与服务更新的叠加效应,最终引发关键内部系统的级联故障。
故障根源分析
事件始于Cloudflare控制面板新版本的发布。公司报告显示,该更新中的React代码存在缺陷,导致对内部租户服务API(Tenant Service API)发起重复且过度的调用。该服务是处理API请求授权的核心组件。
具体而言,漏洞存在于useEffect钩子中——错误配置使其在每次状态变更时都会触发API调用,导致单次面板渲染期间形成请求循环。恰逢此时租户服务API自身也正在进行更新部署。
存在缺陷的控制面板产生"惊群效应"(thundering herd),使新部署的服务不堪重负,最终引发异常故障与恢复失败。由于租户服务承担API请求授权职能,其瘫痪导致UTC时间17:57起Cloudflare控制面板及大量API服务大面积中断。
应急处置过程
Cloudflare工程团队首先监测到租户服务负载激增,随即采取减压扩容措施:
- 实施临时全局速率限制规则
- 增加Kubernetes pods资源以提升吞吐量
这些措施虽部分恢复了API可用性,但控制面板仍处于宕机状态。UTC时间18:58尝试修补服务错误代码路径的操作适得其反,导致API可用性二次短暂受影响。该变更被迅速回滚,最终于19:12全面恢复服务。
值得注意的是,此次中断仅限于处理配置管理的控制平面(control plane)。得益于严格隔离机制,处理客户流量的数据平面(data plane)未受影响,终端用户服务始终保持在线。
后续改进措施
Cloudflare已制定多项防范措施:
- 优先将租户服务迁移至Argo Rollouts部署工具,该工具可自动检测错误并回滚版本
- 在控制面板API重试逻辑中引入随机延迟机制,缓解"惊群效应"
- 大幅增加租户服务资源配置
- 改进容量监控系统,实现主动预警功能
参考来源:
Cloudflare API Outage Linked to React useEffect Bug Causes Service Overload and Recovery Failure
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)