Assetnote 的安全研究人员在 NextJS 框架中发现了一个严重的服务器端请求伪造 (SSRF) 漏洞,编号为 CVE-2024-34351。目前该漏洞已在 NextJS 版本 14.1.1 中进行了修补。
根据介绍,SSRF 漏洞源于 NextJS 内置的图像优化组件,该组件允许开发人员提供来自不同域的图像。通过将特定域列入白名单甚至允许所有 URL,开发人员会无意中将其应用程序暴露于盲目的 SSRF 攻击。攻击者可以通过构造对内部 URL 的请求来利用此漏洞,从而可能获得对敏感信息的未经授权的访问。
此外,研究人员发现该漏洞在某些条件下可能会升级。如果 NextJS 版本已过时或启用了"dangerouslyAllowSVG"
选项,攻击者可能会实现跨站点脚本 (XSS) 或通过 SSRF 泄露 XML 响应的完整内容。
该漏洞还扩展到 NextJS 的服务器端功能,特别是其 Server Actions 功能。通过伪造指向内部主机的 Host header ,攻击者可以诱骗 NextJS 从该主机而非目标应用程序获取响应,从而导致 SSRF 漏洞。
为了降低风险,建议开发人员将其 NextJS 安装更新到版本 14.1.1 或更高版本。 此外,至关重要的是要仔细审查和限制白名单中用于图像优化的域,并确保除非绝对必要,否则禁用"dangerouslyAllowSVG"
选项。
除了 SSRF 缺陷之外,Next.js 团队还修复了一个名为 CVE-2024-34350 的高严重性漏洞,该漏洞的 CVSS 评分为 7.5。 此安全问题由安全研究员 elifoster-block发现,是由于 Next.js 对 HTTP 请求的处理不一致而引起的,即恶意伪造的请求会被解释为单个请求和两个并发的独立请求。该漏洞特别影响使用 Next.js 中重写功能的路由,可能导致响应不同步,并导致响应队列中毒。