<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>SSRF on KnightLi的博客</title>
        <link>https://www.knightli.com/tags/ssrf/</link>
        <description>Recent content in SSRF on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sun, 17 May 2026 17:27:13 +0800</lastBuildDate><atom:link href="https://www.knightli.com/tags/ssrf/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Next.js 高危 SSRF 漏洞 CVE-2026-44578：影响范围与升级建议</title>
        <link>https://www.knightli.com/2026/05/17/nextjs-cve-2026-44578-websocket-ssrf/</link>
        <pubDate>Sun, 17 May 2026 17:27:13 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/05/17/nextjs-cve-2026-44578-websocket-ssrf/</guid>
        <description>&lt;p&gt;Next.js 在 2026 年 5 月披露了一个高危 SSRF 漏洞：CVE-2026-44578。&lt;/p&gt;
&lt;p&gt;根据 GitHub / Vercel 安全公告 &lt;code&gt;GHSA-c4j6-fc7j-m34r&lt;/code&gt; 和 NVD 记录，这个漏洞影响自托管的 Next.js 应用，前提是应用使用内置 Node.js server，并且暴露在可接收恶意 WebSocket upgrade 请求的网络环境中。攻击者可能让服务器代理请求到任意内部或外部地址，从而访问内部服务或云元数据端点。&lt;/p&gt;
&lt;p&gt;Vercel 托管的部署不受影响。修复版本是 &lt;code&gt;15.5.16&lt;/code&gt; 和 &lt;code&gt;16.2.5&lt;/code&gt;。&lt;/p&gt;
&lt;h2 id=&#34;先说结论&#34;&gt;先说结论
&lt;/h2&gt;&lt;p&gt;如果你在自己服务器、容器、Kubernetes、ECS、VPS、裸机或 PaaS 上自托管 Next.js，需要优先检查。&lt;/p&gt;
&lt;p&gt;受影响范围：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;next &amp;gt;= 13.4.13 &amp;lt; 15.5.16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;next &amp;gt;= 16.0.0 &amp;lt; 16.2.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不受影响或风险较低的情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;部署在 Vercel 平台上的应用。&lt;/li&gt;
&lt;li&gt;已升级到 &lt;code&gt;15.5.16&lt;/code&gt;、&lt;code&gt;16.2.5&lt;/code&gt; 或更高版本。&lt;/li&gt;
&lt;li&gt;没有使用内置 Node.js server 暴露服务的场景。&lt;/li&gt;
&lt;li&gt;反向代理或负载均衡已经阻断不需要的 WebSocket upgrade 请求，并且出站访问也做了限制。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;推荐处置顺序：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先确认生产环境实际运行的 &lt;code&gt;next&lt;/code&gt; 版本。&lt;/li&gt;
&lt;li&gt;自托管应用尽快升级到修复版本。&lt;/li&gt;
&lt;li&gt;暂时无法升级时，在反向代理或负载均衡层阻断不需要的 WebSocket upgrade。&lt;/li&gt;
&lt;li&gt;限制应用服务器访问云元数据、内网管理面和敏感内部服务。&lt;/li&gt;
&lt;li&gt;排查近期异常 WebSocket upgrade 请求和内部访问日志。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;漏洞是什么&#34;&gt;漏洞是什么
&lt;/h2&gt;&lt;p&gt;CVE-2026-44578 是一个 Server-Side Request Forgery，也就是 SSRF 漏洞。&lt;/p&gt;
&lt;p&gt;SSRF 的核心风险是：攻击者不直接访问内部系统，而是诱导你的服务器替他发请求。服务器通常位于更靠近内网、云平台和内部服务的位置，所以一旦被当成代理使用，可能访问到外部攻击者本来碰不到的资源。&lt;/p&gt;
&lt;p&gt;这次 Next.js 的问题出在 WebSocket upgrade 处理路径。安全公告称，自托管应用如果使用内置 Node.js server，攻击者可以通过特制 WebSocket upgrade 请求，让服务器代理访问任意内部或外部目的地。&lt;/p&gt;
&lt;p&gt;风险点包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;内网 HTTP 服务。&lt;/li&gt;
&lt;li&gt;管理后台。&lt;/li&gt;
&lt;li&gt;云元数据地址。&lt;/li&gt;
&lt;li&gt;容器或集群内部服务。&lt;/li&gt;
&lt;li&gt;只允许服务器访问的内部 API。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个漏洞的 CVSS v3.1 评分为 &lt;code&gt;8.6 High&lt;/code&gt;，向量是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这意味着攻击面在网络侧，攻击复杂度低，不需要权限，也不需要用户交互，主要影响机密性。&lt;/p&gt;
&lt;h2 id=&#34;为什么自托管更危险&#34;&gt;为什么自托管更危险
&lt;/h2&gt;&lt;p&gt;这次公告明确提到：Vercel-hosted deployments are not affected。&lt;/p&gt;
&lt;p&gt;真正需要重点关注的是自托管部署。原因很简单：自托管应用的网络环境千差万别，有些直接暴露 origin server，有些在 Nginx、Traefik、Ingress、Cloudflare、ALB 或自建网关后面，有些运行在云主机、容器网络或 Kubernetes 集群里。&lt;/p&gt;
&lt;p&gt;如果这些环境没有限制出站访问，Next.js 进程可能看得到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;169.254.169.254&lt;/code&gt; 这类云元数据地址。&lt;/li&gt;
&lt;li&gt;内网 IP 段。&lt;/li&gt;
&lt;li&gt;只在 VPC 内暴露的服务。&lt;/li&gt;
&lt;li&gt;Redis、Elasticsearch、Prometheus、Grafana 等内部组件。&lt;/li&gt;
&lt;li&gt;Kubernetes Service、Pod 或管理端点。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以 SSRF 的危险不只在 Next.js 本身，而在它所在网络里能访问什么。&lt;/p&gt;
&lt;h2 id=&#34;如何判断是否受影响&#34;&gt;如何判断是否受影响
&lt;/h2&gt;&lt;p&gt;第一步，看 &lt;code&gt;next&lt;/code&gt; 版本。&lt;/p&gt;
&lt;p&gt;在项目目录里执行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm ls next
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm why next
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;也可以直接查看：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat package.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat package-lock.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat pnpm-lock.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat yarn.lock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果版本落在下面范围，就需要处理：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;= 13.4.13 &amp;lt; 15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;= 16.0.0 &amp;lt; 16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;第二步，看部署方式。&lt;/p&gt;
&lt;p&gt;重点关注这些情况：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;next start&lt;/code&gt; 运行生产服务。&lt;/li&gt;
&lt;li&gt;使用自定义 Node.js server 承载 Next.js。&lt;/li&gt;
&lt;li&gt;Docker 镜像里直接启动 Next.js server。&lt;/li&gt;
&lt;li&gt;Kubernetes / ECS / VPS / 裸机自托管。&lt;/li&gt;
&lt;li&gt;反向代理后面仍然直接暴露 Next.js origin。&lt;/li&gt;
&lt;li&gt;应用所在网络能访问内部服务或云元数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果应用部署在 Vercel，按官方公告不受这个漏洞影响。但依然建议保持 Next.js 版本更新，因为同一批版本里可能还修复了其他问题。&lt;/p&gt;
&lt;h2 id=&#34;应该升级到什么版本&#34;&gt;应该升级到什么版本
&lt;/h2&gt;&lt;p&gt;官方修复版本是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;15.5.16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16.2.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;升级示例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install next@15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或如果使用 16.x：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install next@16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;pnpm：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm add next@15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm add next@16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;升级后重新构建并发布：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;或按你的 CI/CD 流程重新构建 Docker 镜像并发布。&lt;/p&gt;
&lt;p&gt;如果你的项目锁定在 14.x 或 15.x，不建议为了修漏洞仓促跨大版本到 16.x。更稳妥的做法是先升级到 &lt;code&gt;15.5.16&lt;/code&gt; 这一修复线，完成测试和发布后，再规划大版本升级。&lt;/p&gt;
&lt;h2 id=&#34;临时缓解措施&#34;&gt;临时缓解措施
&lt;/h2&gt;&lt;p&gt;如果暂时不能升级，安全公告给出的核心思路是：不要把 origin server 直接暴露给不可信网络；如果不需要 WebSocket upgrade，就在反向代理或负载均衡层阻断；同时尽量限制 origin 的出站访问。&lt;/p&gt;
&lt;p&gt;可以考虑这些缓解方向：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;不直接暴露 Next.js origin server。&lt;/li&gt;
&lt;li&gt;在 Nginx、Ingress、ALB、Cloudflare 等入口层过滤不需要的 WebSocket upgrade。&lt;/li&gt;
&lt;li&gt;如果业务不使用 WebSocket，直接拒绝带有 upgrade 语义的请求。&lt;/li&gt;
&lt;li&gt;对应用服务器做 egress 限制，禁止访问云元数据地址和敏感内网段。&lt;/li&gt;
&lt;li&gt;用云平台能力启用更安全的元数据访问模式，例如要求 token 的元数据服务。&lt;/li&gt;
&lt;li&gt;对管理后台、数据库、缓存、监控系统增加认证和网络隔离。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;注意，反向代理规则只是临时缓解，不应该替代升级。框架漏洞最终仍然要通过修复版本解决。&lt;/p&gt;
&lt;h2 id=&#34;运维排查重点&#34;&gt;运维排查重点
&lt;/h2&gt;&lt;p&gt;这个漏洞主要影响机密性，所以排查重点是“有没有被用来访问内部资源”。&lt;/p&gt;
&lt;p&gt;建议关注：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web 访问日志中异常的 &lt;code&gt;Upgrade&lt;/code&gt;、&lt;code&gt;Connection&lt;/code&gt;、&lt;code&gt;Host&lt;/code&gt;、路径和来源 IP。&lt;/li&gt;
&lt;li&gt;反向代理或负载均衡日志中异常的 WebSocket upgrade 请求。&lt;/li&gt;
&lt;li&gt;Next.js 服务附近的异常出站连接。&lt;/li&gt;
&lt;li&gt;云元数据服务访问日志或凭据使用记录。&lt;/li&gt;
&lt;li&gt;内网管理服务、监控系统、缓存、搜索服务的异常访问。&lt;/li&gt;
&lt;li&gt;IAM 临时凭据、访问密钥、token 是否有异常调用。&lt;/li&gt;
&lt;li&gt;容器或主机上是否出现异常进程、下载行为或横向移动迹象。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果怀疑被利用，建议按泄露场景处理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保留日志和现场。&lt;/li&gt;
&lt;li&gt;轮换可能暴露的云凭据、API key、数据库密码和 session secret。&lt;/li&gt;
&lt;li&gt;检查云账号最近的 API 调用。&lt;/li&gt;
&lt;li&gt;检查内网服务访问记录。&lt;/li&gt;
&lt;li&gt;重建受影响容器或主机。&lt;/li&gt;
&lt;li&gt;复查出站访问策略和元数据保护。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;这和-reactnextjs-rce-不是一回事&#34;&gt;这和 React/Next.js RCE 不是一回事
&lt;/h2&gt;&lt;p&gt;容易混淆的一点是，CVE-2026-44578 是 Next.js WebSocket upgrade SSRF，不是之前 React Server Components 相关的 RCE。&lt;/p&gt;
&lt;p&gt;它的核心影响是让服务器向攻击者指定的内部或外部地址发请求，主要风险是信息泄露和内部资源探测。&lt;/p&gt;
&lt;p&gt;而 React Server Components 相关 RCE 则属于代码执行风险，攻击后果和修复范围不同。&lt;/p&gt;
&lt;p&gt;所以排查时不要只看“Next.js 有漏洞”这个大标题，要把具体 CVE、影响版本、部署模式和修复版本对应起来。&lt;/p&gt;
&lt;h2 id=&#34;哪些团队要优先处理&#34;&gt;哪些团队要优先处理
&lt;/h2&gt;&lt;p&gt;优先级最高的是这些环境：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自托管 Next.js 生产站点。&lt;/li&gt;
&lt;li&gt;运行在云主机、容器、Kubernetes 或内网环境。&lt;/li&gt;
&lt;li&gt;应用服务器可以访问云元数据服务。&lt;/li&gt;
&lt;li&gt;应用服务器能访问内部管理后台、数据库、缓存或监控系统。&lt;/li&gt;
&lt;li&gt;直接暴露 &lt;code&gt;next start&lt;/code&gt; origin server。&lt;/li&gt;
&lt;li&gt;使用老版本 &lt;code&gt;next&lt;/code&gt;，且升级流程不清晰。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优先级相对较低的是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完全部署在 Vercel 的应用。&lt;/li&gt;
&lt;li&gt;已升级到修复版本的应用。&lt;/li&gt;
&lt;li&gt;origin server 不直接暴露，且入口层已经阻断不需要的 WebSocket upgrade。&lt;/li&gt;
&lt;li&gt;出站网络严格受控，无法访问敏感内网资源。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;但“优先级较低”不等于可以不升级。Next.js 是高频暴露组件，框架版本长期落后会叠加更多风险。&lt;/p&gt;
&lt;h2 id=&#34;给开发团队的检查清单&#34;&gt;给开发团队的检查清单
&lt;/h2&gt;&lt;p&gt;可以按下面清单处理：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 确认所有仓库的 &lt;code&gt;next&lt;/code&gt; 版本。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 查出所有自托管部署，不只看 Vercel 项目。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 标记使用 &lt;code&gt;next start&lt;/code&gt; 或内置 Node.js server 的服务。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 升级到 &lt;code&gt;15.5.16&lt;/code&gt;、&lt;code&gt;16.2.5&lt;/code&gt; 或更高版本。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 重新构建并发布生产镜像。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 在入口层阻断不需要的 WebSocket upgrade。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 限制应用服务器访问云元数据和敏感内网段。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 检查近期异常 upgrade 请求和出站访问。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 轮换疑似暴露的凭据。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 把 Next.js 安全更新纳入依赖更新流程。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;总结&#34;&gt;总结
&lt;/h2&gt;&lt;p&gt;CVE-2026-44578 是一个需要认真处理的 Next.js 高危 SSRF 漏洞。&lt;/p&gt;
&lt;p&gt;它不影响 Vercel 托管部署，但影响范围覆盖大量自托管 Next.js 应用：&lt;code&gt;13.4.13&lt;/code&gt; 到 &lt;code&gt;15.5.16&lt;/code&gt; 之前，以及 &lt;code&gt;16.0.0&lt;/code&gt; 到 &lt;code&gt;16.2.5&lt;/code&gt; 之前。漏洞触发点在 WebSocket upgrade 处理路径，攻击者可能让服务器代理访问内部或外部地址，进而暴露内网服务或云元数据端点。&lt;/p&gt;
&lt;p&gt;最直接的修复方式是升级到 &lt;code&gt;15.5.16&lt;/code&gt; 或 &lt;code&gt;16.2.5&lt;/code&gt;。临时缓解则是不要直接暴露 origin server，阻断不需要的 WebSocket upgrade，并限制应用服务器的出站访问。&lt;/p&gt;
&lt;p&gt;对运维团队来说，重点不是只看 CVE 分数，而是看你的 Next.js 服务所在网络能访问什么。SSRF 的真实风险，往往取决于服务器背后有哪些内网资源和云权限。&lt;/p&gt;
&lt;p&gt;参考链接：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Advisory：GHSA-c4j6-fc7j-m34r&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-44578&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD：CVE-2026-44578&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://security.snyk.io/vuln/SNYK-JS-NEXT-16638682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Snyk：SNYK-JS-NEXT-16638682&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
