{"id":"CVE-2018-14730","aliases":["EUVD-2020-0849","GHSA-77q4-m83q-w76v"],"status":"published","title":"Missing Origin Validation in browserify-hmr","description":"An issue was discovered in Browserify-HMR. Attackers are able to steal developer's code because the origin of requests is not checked by the WebSocket server, which is used for HMR (Hot Module Replacement). Anyone can receive the HMR message sent by the WebSocket server via a ws://127.0.0.1:3123/ connection from any origin.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-09","score":0.01691,"percentile":0.77236,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-200"],"published":"2018-09-21T17:00:00Z","modified":"2026-06-17T01:41:31Z","fixes":[{"ecosystem":"npm","package":"browserify-hmr","fixed_in":["0.4.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"browserify-hmr","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.4.0"}]}]},{"source":"osv","ecosystem":"npm","package":"browserify-hmr","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.4.0"}]}]}],"products":[{"vendor":"browserify-hot_module_replacement_project","product":"browserify-hot_module_replacement"}],"references":[{"url":"https://github.com/AgentME/browserify-hmr/issues/41","tags":["x_refsource_MISC","x_transferred","Third Party Advisory","web"]},{"url":"https://blog.cal1.cn/post/Sniffing%20Codes%20in%20Hot%20Module%20Reloading%20Messages","tags":["x_refsource_MISC","x_transferred","Exploit","Third Party Advisory","web"]},{"url":"https://blog.cal1.cn/post/Sniffing%20Codes%20in%20Hot%20Module%20Reloading%20Messages)","tags":["web"]},{"url":"https://www.npmjs.com/advisories/726","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2018-14730","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-77q4-m83q-w76v"},{"url":"https://github.com/AgentME/browserify-hmr","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2018-14730","description":"An issue was discovered in Browserify-HMR. Attackers are able to steal developer's code because the origin of requests is not checked by the WebSocket server, which is used for HMR (Hot Module Replacement). Anyone can receive the HMR message sent by the WebSocket server via a ws://127.0.0.1:3123/ connection from any origin.","status":"published","published":"2018-09-21T17:00:00Z","modified":"2024-08-05T09:38:13.594Z","updated_at":"2026-11-02T14:35:00.589142Z"}],"euvd":[{"id":"EUVD-2020-0849","description":"An issue was discovered in Browserify-HMR. Attackers are able to steal developer's code because the origin of requests is not checked by the WebSocket server, which is used for HMR (Hot Module Replacement). Anyone can receive the HMR message sent by the WebSocket server via a ws://127.0.0.1:3123/ connection from any origin.","status":"published","published":"2018-09-21T17:00:00Z","modified":"2024-08-05T09:38:13Z","updated_at":"2026-11-03T02:39:45.703245Z"}],"ghsa":[{"id":"GHSA-77q4-m83q-w76v","title":"Missing Origin Validation in browserify-hmr","description":"Versions of `browserify-hmr` prior to 0.4.0 are missing origin validation on the websocket server. \n\nThis vulnerability allows a remote attacker to steal a developer's source code because the origin of requests to the websocket server that is used for Hot Module Replacement (HMR) are not validated.\n\n\n## Recommendation\n\nUpgrade to version 0.4.0 or later.","status":"published","published":"2020-09-01T21:18:20Z","modified":"2023-01-09T05:03:54Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:36:07.581563Z"}],"nvd":[{"id":"CVE-2018-14730","description":"An issue was discovered in Browserify-HMR. Attackers are able to steal developer's code because the origin of requests is not checked by the WebSocket server, which is used for HMR (Hot Module Replacement). Anyone can receive the HMR message sent by the WebSocket server via a ws://127.0.0.1:3123/ connection from any origin.","status":"published","published":"2018-09-21T17:29:04.983Z","modified":"2026-06-17T01:41:31.923Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T14:04:40.661264Z"}],"osv":[{"id":"GHSA-77q4-m83q-w76v","title":"Missing Origin Validation in browserify-hmr","description":"Versions of `browserify-hmr` prior to 0.4.0 are missing origin validation on the websocket server. \n\nThis vulnerability allows a remote attacker to steal a developer's source code because the origin of requests to the websocket server that is used for Hot Module Replacement (HMR) are not validated.\n\n\n## Recommendation\n\nUpgrade to version 0.4.0 or later.","status":"published","published":"2020-09-01T21:18:20Z","modified":"2023-11-08T03:59:56.864154Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-200"],"updated_at":"2026-11-02T15:46:40.657155Z"}]}}
