找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

553

积分

1

好友

67

主题
发表于 昨天 23:18 | 查看: 3| 回复: 0

一场持续25分钟的故障,导致全球约28%的网站服务中断。

Cloudflare全球故障影响示意图

事件的源头并非外部攻击,而是源于Cloudflare自身的一次配置错误。更值得关注的是,这已是该平台在短短两周内发生的第二次大规模服务中断。

12月5日,Cloudflare的边缘节点开始大规模返回HTTP 500内部服务器错误。问题的根源并非安全威胁,而是其为了应对React Server Components暴露出的一个严重安全漏洞所采取的加固措施,这次故障可以说是由React的漏洞间接引发的。Cloudflare团队首先将Web应用防火墙(WAF)的缓冲区大小扩大至1MB,随后又关闭了一个内部测试工具。本意是为了更快地保护开发者,但这些操作却意外激活了运行在旧版FL1代理中、一段“沉睡”了可能长达15年的Lua代码缺陷:当某条规则被跳过时,其对应的对象并未被正确生成,系统后续尝试访问了一个nil值,直接导致了500错误。

Cloudflare新旧代理架构对比

Lua语言诞生于1993年,在2008年左右已相当成熟。Cloudflare于2009年成立,2010年服务上线后,Lua便成为其早期网络堆栈的基石之一。这也意味着部分历史代码因深度嵌入核心系统而难以彻底替换,潜在的缺陷可能在多年后被完全意想不到的操作序列激活。

尽管受影响的仅限于仍在使用旧版FL1代理并开启了特定托管规则集的客户,但这部分流量却占据了Cloudflare总流量的28%。颇具讽刺意味的是,已经用Rust重写并投入使用的新版FL2代理完全不存在此类问题。

更令人不安的是,此次事故与11月18日发生的那次故障模式高度相似:紧急发布补丁 → 全球范围同步生效 → 击中老旧代码路径 → 引发大规模服务瘫痪。Cloudflare在第一次事故后曾承诺改造其发布体系,但改造尚未完成,新的事故已然发生。

事后,Cloudflare宣布冻结所有网络变更,并将发布流程、应急响应能力以及故障开放(fail-open)容错机制列为最高优先级的改进事项。根本问题已然清晰:在一个高度复杂、全球分布的庞大系统中,即便是一行多年未曾执行的陈旧代码,只要与一次“全球同步推送”相结合,便足以引发波及半个互联网的连锁故障。

这两次密集发生的事故揭示了一个严峻的事实:在安全性要求不断提高、系统复杂度持续增长的互联网基础设施领域,如何避免“被自己的更新所击倒”,已经成为一个比抵御外部攻击更为紧迫和关键的工程挑战。

您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-8 23:44 , Processed in 0.096074 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表