webpack-dev-server vulnerable to cross-origin WebSocket access via proxied upgrades
What fixes it
- 5.2.7webpack-dev-serverCVE List
- 6.1.0webpack-dev-serverCVE List
- 5.2.7webpack-dev-server, npmGitHub
npm install webpack-dev-server@5.2.7 - 6.1.0webpack-dev-server, npmGitHub
npm install webpack-dev-server@6.1.0
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
webpack-dev-server is a development server that provides live reloading for webpack projects. In versions before 5.2.7 and in version 6.0.0, when a proxy entry is configured to forward WebSockets, the server forwards non-HMR WebSocket upgrade requests to the proxy target without validating the Host or Origin headers, so the allowedHosts protection does not apply to those proxied upgrades. A malicious web page visited by a developer can open a cross-origin WebSocket through the dev server and read from and write to the proxied backend, even when the server is bound to loopback. The issue is fixed in webpack-dev-server 5.2.7 and 6.1.0, where proxied WebSocket upgrades pass the same Host and Origin validation as the HMR WebSocket, and users should upgrade to one of those versions or later. As a workaround, omit WebSocket forwarding from proxy entries that do not need it and scope the proxy to specific paths.
Text from CVE List
Affected versions 6
- webpack-dev-serveraffected: all versions before 5.2.7CVE List
- webpack-dev-serverunaffected: 5.2.7CVE List
- webpack-dev-serveraffected: 6.0.0 before 6.1.0CVE List
- webpack-dev-serverunaffected: 6.1.0CVE List
- webpack-dev-server, npm< 5.2.7GitHub
- webpack-dev-server, npm>= 6.0.0, < 6.1.0GitHub