IPBUF安全漏洞报告
English
CVE-2026-6402 CVSS 5.3 中危

CVE-2026-6402 webpack-dev-server源码泄露漏洞

披露日期: 2026-05-12
来源: ce714d77-add3-4f53-aff5-83d477b104bb

漏洞信息

漏洞编号
CVE-2026-6402
漏洞类型
信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
webpack-dev-server

相关标签

信息泄露webpack-dev-server跨域攻击CORS

漏洞概述

webpack-dev-server在5.2.3及之前版本中存在跨域源码泄露漏洞。当开发服务器使用HTTP等非可信协议提供服务时,其依赖的Sec-Fetch请求头会被浏览器省略,导致安全机制失效。攻击者可诱导开发者访问恶意网站,进而读取并窃取本地开发环境中的应用源代码。

技术细节

该漏洞是由于webpack-dev-server在处理跨域请求时的安全机制设计缺陷造成的。在受影响版本中,服务器试图通过检查Sec-Fetch-Mode和Sec-Fetch-Site HTTP请求头来验证请求来源的可信度,以防止跨域源码泄露。然而,现代浏览器对于非可信源(如使用HTTP协议的站点)发出的请求,会出于隐私保护目的而自动省略这些头部信息。这导致webpack-dev服务器的安全校验逻辑失效。攻击者可以利用这一机制绕过限制,通过构造恶意的HTML页面,诱导受害者访问。在受害者浏览器加载恶意页面时,攻击者可以利用JavaScript动态创建脚本标签,指向受害者本地运行的webpack-dev-server服务地址(通常是localhost或内网IP及默认端口)。由于缺少有效的跨域防御头(如Cross-Origin-Resource-Policy),浏览器允许加载并可能读取响应内容,从而导致受害者的应用源代码被恶意网站窃取。

攻击链分析

STEP 1
步骤1
攻击者搭建一个恶意网站,并在其中嵌入针对本地开发服务器(如 localhost:8080)的资源请求脚本。
STEP 2
步骤2
攻击者诱导正在运行 webpack-dev-server 的目标开发者访问该恶意网站。
STEP 3
步骤3
开发者浏览器尝试加载恶意网站中的脚本,向本地开发服务器发起请求。
STEP 4
步骤4
由于请求来自非可信源(HTTP),浏览器省略了 Sec-Fetch 等安全头部,导致开发服务器的防护失效。
STEP 5
步骤5
恶意网站成功跨域读取并获取了开发服务器中的应用源代码。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Proof of Concept for CVE-2026-6402 --> <!-- Attacker's website code --> <script> // Attempt to load source code from a local webpack-dev-server instance // This works if the dev server is running on HTTP and uses a guessable port var script = document.createElement('script'); script.src = 'http://localhost:8080/main.js'; // Common default port script.onload = function() { console.log("Script loaded. Source code may be exposed if the browser allows cross-origin reading."); }; document.head.appendChild(script); </script>

影响范围

webpack-dev-server <= 5.2.3

防御指南

临时缓解措施
建议开发者立即将 webpack-dev-server 升级至 5.2.4 或更高版本。作为临时缓解措施,应避免在不可信网络环境下通过 HTTP 运行开发服务器,尽量配置为使用 HTTPS,或者使用防火墙严格限制对开发端口的访问。此外,使用 Chrome 142 或更高版本的浏览器也能利用其本地网络访问限制提供一定程度的防护。

参考链接