{"id":"CVE-2026-112085","kind":"vulnerability","aliases":["CVE-2026-112085"],"related":[],"title":"webpack-dev-server: proxied WebSockets skip Host and Origin checks, enabling cross-origin access","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.","summary":"When a proxy entry forwards WebSockets, webpack-dev-server does not check the Host or Origin headers on those upgrade requests, so allowedHosts does not protect them. A malicious web page open in a developer's browser can open a cross-origin WebSocket through the dev server and read and write the proxied backend, even when the server is bound to loopback.","severity":"high","cvss":8.2,"epss":0.00147,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["developer-machines","frontend","node","package","webpack","webpack-dev-server"],"not_affected_if":["no-websocket-proxy","production-only"],"how_to_check":"- Check the installed version with `npm ls webpack-dev-server`; versions before `5.2.7` and `6.0.0` are affected.\n- Look in `webpack.config.js` or `devServer` config for `proxy` entries with `ws: true` or WebSocket forwarding enabled.","fix":"- Upgrade webpack-dev-server to `5.2.7` or `6.1.0` or later.\n- As a workaround, remove WebSocket forwarding from proxy entries that do not need it and scope proxies to specific paths.","status":"open","published_at":"2026-10-22T10:17:08+00:00","first_seen_at":"2026-10-23T21:57:30+00:00","triaged_at":"2026-10-25T03:03:42+00:00","updated_at":"2026-10-25T03:03:42+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T03:03:42Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade webpack-dev-server to `5.2.7` or `6.1.0` or later.\n- As a workaround, remove WebSocket forwarding from proxy entries that do not need it and scope proxies to specific paths.","reach":"local","title":"webpack-dev-server: proxied WebSockets skip Host and Origin checks, enabling cross-origin access","impact":"medium","summary":"When a proxy entry forwards WebSockets, webpack-dev-server does not check the Host or Origin headers on those upgrade requests, so allowedHosts does not protect them. A malicious web page open in a developer's browser can open a cross-origin WebSocket through the dev server and read and write the proxied backend, even when the server is bound to loopback.","category":"package","nicknames":[],"who_cares":["webpack","webpack-dev-server","node","developer-machines","frontend"],"confidence":0.8,"needs_auth":"no","worst_case":"Attacker reads and writes the proxied backend from a visited web page.","analyst_note":"","how_to_check":"- Check the installed version with `npm ls webpack-dev-server`; versions before `5.2.7` and `6.0.0` are affected.\n- Look in `webpack.config.js` or `devServer` config for `proxy` entries with `ws: true` or WebSocket forwarding enabled.","needs_analyst":false,"not_affected_if":["no-websocket-proxy","production-only"],"who_is_affected":"Developers who run webpack-dev-server with a proxy entry that forwards WebSockets are exposed, because a malicious web page they visit in the same browser can reach the proxied backend through the dev server. Projects without a WebSocket-forwarding proxy are not affected by this flaw. Production builds and servers that do not run the dev server can skip it.","user_interaction":"yes","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000681,"input_tokens":3553,"output_tokens":651,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-112085':19A,22A '-2026':18A,21A '5.2.7':116C,206C '6.0.0':120C '6.1.0':208C 'access':16A 'allowedhost':57B,152C 'appli':156C 'backend':89B,188C 'bound':95B,194C 'browser':71B 'check':11A,46B 'configur':126C 'cross':14A,76B,173C 'cross-origin':13A,75B,172C 'cve':17A,20A 'dev':3A,32B,42B,81B,100C,178C,204C 'develop':24B,69B,104C,168C 'developer-machin':23B 'enabl':12A 'entri':37B,124C,243C 'even':90B,189C 'fix':200C 'forward':38B,128C,132C,240C 'frontend':26B 'header':51B,149C 'hmr':135C,222C 'host':8A,48B,146C,216C 'issu':198C 'later':234C 'live':108C 'loopback':97B,196C 'machin':25B 'malici':63B,162C 'need':247C 'node':27B 'non':134C 'non-hmr':133C 'omit':238C 'one':229C 'open':66B,73B,170C 'origin':10A,15A,50B,77B,148C,174C,218C 'packag':28B 'page':65B,164C 'pass':213C 'path':255C 'project':112C 'protect':60B,153C 'provid':107C 'proxi':5A,36B,88B,123C,141C,159C,187C,210C,242C,252C 'read':84B,181C 'reload':109C 'request':55B,138C 'scope':250C 'server':4A,33B,43B,82B,93B,101C,105C,131C,179C,192C,205C 'skip':7A 'specif':254C 'target':142C 'upgrad':54B,137C,160C,212C,227C 'user':225C 'valid':144C,219C 'version':114C,119C,232C 'visit':165C 'web':64B,163C 'webpack':2A,29B,31B,41B,99C,111C,203C 'webpack-dev-serv':1A,30B,40B,98C,202C 'websocket':6A,39B,78B,129C,136C,175C,211C,223C,239C 'without':143C 'workaround':237C 'write':86B,184C","nicknames":[],"mitigations":[],"who_affected":"Developers who run webpack-dev-server with a proxy entry that forwards WebSockets are exposed, because a malicious web page they visit in the same browser can reach the proxied backend through the dev server. Projects without a WebSocket-forwarding proxy are not affected by this flaw. Production builds and servers that do not run the dev server can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T10:17:08+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N","cvss_by":"ce714d77-add3-4f53-aff5-83d477b104bb","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112085","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112085","severity":null,"published_at":"2026-10-22T10:17:08+00:00","modified_at":"2026-10-22T15:25:10+00:00","first_seen_at":"2026-10-23T21:57:30+00:00","fetched_at":"2026-10-23T22:29:02+00:00","note":null},{"source":"epss","external_id":"CVE-2026-112085","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-112085","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-24T07:15:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}