CVE-2026-9595CVE-2026-9595是webpack-dev-server中的一个安全漏洞。当用户在webpack-dev-server中配置的代理具有广泛的上下文路径(如'/')且启用了WebSocket支持(ws: true)时,代理会错误地拦截dev server自身的HMR(热模块替换)WebSocket连接,并将其转发到代理目标服务器。这导致严重的安全问题:攻击者可以获取受害者的浏览器cookies和Origin头部信息,绕过dev server的Host/Origin验证机制,并破坏HMR socket的正常工作,因为HMR和代理会同时向同一个socket写入数据。该漏洞影响所有使用webpack-dev-server进行开发且配置了不安全代理规则的开发者,可能导致敏感信息泄露和开发环境被攻击。
webpack-dev-server的代理功能基于http-proxy-middleware实现,当配置ws: true时,会启用WebSocket代理支持。漏洞产生的根本原因在于代理配置中的context路径设置过于宽泛(使用'/'匹配所有路径),导致本应由dev server内部处理的HMR WebSocket连接(通常路径为'/ws'或'/__webpack_hmr')也被代理规则捕获。攻击者利用此漏洞需要诱导受害者访问配置了恶意代理的开发服务器,当受害者浏览器加载页面时,HMR客户端会尝试建立WebSocket连接,此时连接会被转发到攻击者控制的服务器,从而泄露cookies、Origin header等敏感信息。此外,由于HMR socket被代理占用,可能导致热更新功能失效或产生不可预期的行为。攻击者还可以利用泄露的cookies进行会话劫持,或利用Origin信息进行CSRF攻击。