Next.js WebSocket Upgrade Handler SSRF
Posted
CVE-2026-44578 — Next.js WebSocket Upgrade Handler SSRF
一、漏洞原理
Next.js自托管部署使用内置Node.js服务器处理HTTP请求。WebSocket升级请求的处理逻辑中缺少对目标地址的校验,攻击者可通过发送包含绝对 URL 的精心构造请求,诱使服务器将连接请求代理到任意目标,从而访问内部或外部资源,这可能导致敏感的内部服务或云元数据端点暴露。
该漏洞仅限自托管
受影响的版本:
Next.js 13.4.13 – 15.5.15,16.0.0 – 16.2.4
二、对应逻辑处理代码
Next.js 在处理 WebSocket 升级请求时,存在以下逻辑,我们看看存在漏洞版本的关键代码逻辑实现

问题点就在最后这个判断:只要 parsedUrl.protocol 存在,就直接走 proxyRequest()。
修复过后的对应代码逻辑是下面这种情况

三、下面是模拟真实云业务环境的SSRF漏洞,直接读取元数据(以下只是靶场实践)
攻击者构造以下Websocket升级处理请求,以及发送包含绝对URI
获取元数据列表

http:///latest/meta-data/ 中的 /latest/meta-data/ 只是借用了 AWS IMDS 的经典路径格式;在该实验环境中,真正被访问的是 localhost:80 上的 fake IMDS,而不是云上真实的 169.254.169.254。如果在真实环境中,可以替换为:http://169.254.169.254/latest/meta-data
获取IAM凭据

获取用户数据
