IPBUF安全漏洞报告
English
CVE-2026-44580 CVSS 6.1 中危

CVE-2026-44580 Next.js beforeInteractive脚本XSS漏洞

披露日期: 2026-05-13

漏洞信息

漏洞编号
CVE-2026-44580
漏洞类型
跨站脚本 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Next.js

相关标签

XSSNext.jsCross-Site ScriptingWeb SecurityCVE-2026-44580Client-Side Injection

漏洞概述

Next.js框架在处理beforeInteractive脚本时存在跨站脚本(XSS)漏洞。当应用结合使用beforeInteractive脚本与不可信内容时,序列化脚本内容未安全转义,导致攻击者可注入恶意JS代码,破坏脚本上下文并在访客浏览器中执行任意代码。该漏洞影响13.0.0至15.5.16前及16.2.5前的版本。

技术细节

该漏洞的根源在于Next.js框架对`beforeInteractive`脚本的处理逻辑中,对序列化的脚本内容缺乏严格的安全转义机制。当开发者将不受信任的用户输入直接传递给使用`beforeInteractive`策略的脚本组件时,框架未能正确过滤可能导致上下文切换的特殊字符(如`<`, `>`, `&`等)。攻击者可以利用这一缺陷,构造包含`</script><script>evil_code()</script>`格式的恶意Payload。一旦受害者访问渲染了该脚本的页面,恶意代码便会立即在浏览器端执行。由于该漏洞无需身份认证且通过常规HTTP请求即可触发,结合社会工程学手段,攻击者能够轻易地窃取用户敏感信息、篡改页面内容或进行进一步的客户端攻击。

攻击链分析

STEP 1
侦察
攻击者识别出使用Next.js构建且集成了beforeInteractive脚本功能的Web应用程序。
STEP 2
载荷构造
攻击者构造包含特定JavaScript代码的恶意Payload,利用脚本序列化未转义的缺陷,设计能够闭合<script>标签并注入新代码的字符串。
STEP 3
注入与传递
攻击者通过应用程序的输入点(如URL参数、表单或API接口)将恶意Payload传递给后端,该数据随后被嵌入到beforeInteractive脚本中。
STEP 4
诱导访问
由于需要用户交互(UI:R),攻击者诱导受害者点击特制链接或访问包含恶意数据的页面。
STEP 5
执行与利用
当受害者浏览器加载页面时,解析器执行被注入的恶意JavaScript代码,导致Cookie窃取、会话劫持或其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-44580 // Conceptual exploit demonstrating the lack of escaping in beforeInteractive scripts // Malicious input controlled by the attacker const attackerPayload = '</script><img src=x onerror=alert(1)><script>'; // In a vulnerable Next.js application, this input might be passed // directly to a beforeInteractive script configuration. // Example vulnerable code pattern: // <Script id="user-data" strategy="beforeInteractive"> // window.userData = JSON.parse('${attackerPayload}'); // </Script> // The resulting HTML rendered by the server would look like this: // <script id="user-data">window.userData = JSON.parse('</script><img src=x onerror=alert(1)><script>');</script> // The browser interprets the first closing </script> tag, breaking out of the // intended context and executing the alert(1) as an image error handler.

影响范围

Next.js >= 13.0.0, < 15.5.16
Next.js >= 16.0.0, < 16.2.5

防御指南

临时缓解措施
在无法立即升级的情况下,应严格禁止在beforeInteractive脚本中直接使用未经验证的用户输入。实施严格的输入清洗和输出编码,确保所有动态数据在嵌入脚本前均已进行HTML实体转义,防止闭合标签攻击。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表