webpack-dev-server vulnerable to HMR WebSocket interception via permissive user proxies (original) (raw)
Impact
When a user-configured proxy on webpack-dev-server has a broad context (e.g. /) and ws: true, it also intercepts the dev server's own HMR WebSocket and forwards it to the proxy target. This leaks the browser's cookies and Origin header to the backend, bypasses the dev server's Host/Origin validation, and corrupts the HMR socket (both HMR and the proxy end up writing to the same socket).
Patches
Fixed in webpack-dev-server 5.2.5.
Workarounds
Scope user-defined proxy context to specific paths instead of /, or omit ws: true from the proxy entry when WebSocket forwarding is not required.
References
- PR #4316, the fix on
webpack-dev-server. - vue-cli commit 72ba7505, prior workaround in vue-cli.
- create-react-app PR #7444, prior workaround in create-react-app.