专栏名称: 程序员好物馆
成就一亿技术人
目录
相关文章推荐
51好读  ›  专栏  ›  程序员好物馆

Next.js 受 9.1 级重大漏洞攻击...

程序员好物馆  · 公众号  ·  · 2025-04-02 09:00

正文

请到「今天看啥」查看全文


图片

来源 | 大迁世界

作者 | dev


上周五,就在你刚犯了“周五上线代码”的经典错误后不久,全球最受欢迎的JavaScript框架Next.js被曝出了一项高达9.1级的严重安全漏洞。

此次漏洞攻击方式极为简单:攻击者可以绕过Next.js中间件的认证与授权检查,这意味着原本用于保护应用安全的核心逻辑完全失效。

例如,在软件即服务(SaaS)应用中,我们通常会在中间件中编写类似“如果用户未付费,则自动跳转至付费页面”的逻辑。然而,由于Next.js母公司Vercel近期在安全代码上存在严重疏忽,攻击者仅需向服务器发出特制请求,即可轻松跳过中间件中所有的权限校验。通俗来说,用户只要“礼貌地拒绝”支付,就能免费无限制使用你的应用服务。

此次漏洞爆出后,长期批评Next.js与React框架的用户可谓扬眉吐气,纷纷高喊“早就提醒过你们了!”,而这群“技术预言家”们大多还是躲在暗地里观看热闹。

与此同时,一些竞争对手(比如Cloudflare)也迅速借机抢夺Vercel客户,甚至在推特上演了一场公开的科技界“嘴炮大战”。

谁真正需要担心这个漏洞?

  • 如果你的Next.js应用仍在使用旧版本,并且依赖中间件进行权限认证,请立刻升级补丁版本,否则风险极高。
  • 如果你未使用Next.js的Middleware功能,或者没有部署在Vercel、Netlify等平台,则无需过度担忧。
  • 若你正在自建服务器环境且使用Vercel中间件,可能就在你阅读本文期间,应用已经被黑客攻击成功。

攻击原理大揭秘:Next.js中间件为何如此脆弱?

几乎每个Web框架都有中间件(Middleware)的概念,其本质是位于HTTP请求与响应之间的一层处理代码,用来实现诸如日志记录、错误处理、权限校验等通用功能。如此一来,我们就不必在每个页面或API路由中重复编写类似的代码。

但问题出在:安全研究人员近日翻阅Next.js的历史代码时,意外发现了一个名为 middleware-sub-request 的特殊HTTP头部字段。只要攻击者明确知道中间件的具体名称(通常很容易猜测,因为开发者命名习惯普遍规律),便能利用这个头部字段强行绕过中间件执行。

这一漏洞的致命之处在于:实施攻击的难度极低,但对网站造成的破坏却可能巨大。

此外,此次安全事件还意外引发了额外的“副作用”:例如Cloudflare曾尝试紧急发布规则自动屏蔽此HTTP头,但却导致了诸如Supabase等第三方认证服务的大量误报,迫使他们将规则改为用户手动开启。

漏洞修复缓慢引发争议,安全响应速度遭质疑

事实上,社区开发者最为不满的并非漏洞本身,而是Next.js官方修复漏洞所花费的漫长时间。

该漏洞最初在2月27日即被安全人员报告给了Next.js团队,但Vercel迟至3月18日才正式发布安全补丁,整整拖延了近三周时间。对如此严重的安全问题而言,修复时间实在过于漫长,令广大开发者难以接受。

科技巨头“互撕”大战,Cloudflare公开“抢客户”

更为滑稽的是:Cloudflare的CEO借此事件顺势推出新工具,号称能一键将部署于Vercel的Next.js应用迁移到Cloudflare平台,并暗讽Vercel根本“不关心客户安全”。

面对Cloudflare的挑衅,Vercel的CEO毫不示弱,立即反击称Cloudflare才是臭名昭著的“Cloudbleed”安全事件罪魁祸首,并吐槽Cloudflare的DDoS防护服务形同虚设。

双方CEO你来我往,推特上的互动一度演变为一场科技圈的“迷因大战”,场面极为尴尬。

作为同时使用过Vercel和Cloudflare服务的用户,我真心希望科技大佬们少一些无聊的争吵,多一些建设性的行动。


总结与行动建议:

  • 立即升级 你正在使用的Next.js版本,避免因旧版漏洞遭到入侵。
  • 密切关注Next.js与Vercel官方安全公告,保证你的生产环境随时安全可靠。

希望本次事件能够提高业界对安全问题的重视,毕竟在互联网世界里,没有什么比应用安全更为重要。

图片
好啦,今天的内容分享就到这,感觉不错的同学记得分享点赞哦!
PS: 程序员好物馆 持续分享程序员学习、面试相关干货,不见不散!
图片
点分享
图片
点收藏
图片
点点赞
图片
点在看







请到「今天看啥」查看全文