Skip to content
Heist/ feed
Back to feed
Medium

webpack-dev-server vulnerable to cross-site request forgery via internal developer endpoints

Type: advisorySources: OSV

webpack-dev-server versions 5.2.5 and earlier expose two internal developer endpoints, /webpack-dev-server/open-editor and /webpack-dev-server/invalidate, that perform state-changing actions on any GET request without verifying that the request originated from the dev server's own page. Any website a developer visits while the dev server is running can trigger these endpoints cross-origin with no interaction beyond the visit. An attacker can open an arbitrary existing local file in the developer's editor, including files outside the project root, and repeated requests can spawn editor processes and force recompilations that degrade the developer's machine. Patches: upgrade to webpack-dev-server 5.2.6. Workarounds: none.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-14620
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 01:27 UTC · Revision 1

Source evidence

webpack-dev-server vulnerable to cross-site request forgery via internal developer endpoints

core-osv · Original source

Published 3 Jul 2026, 17:00 UTC

webpack-dev-server versions 5.2.5 and earlier expose two internal developer endpoints, /webpack-dev-server/open-editor and /webpack-dev-server/invalidate, that perform state-changing actions on any GET request without verifying that the request originated from the dev server's own page. Any website a developer visits while the dev server is running can trigger these endpoints cross-origin with no interaction beyond the visit. An attacker can open an arbitrary existing local file in the developer's editor, including files outside the project root, and repeated requests can spawn editor processes and force recompilations that degrade the developer's machine. Patches: upgrade to webpack-dev-server 5.2.6. Workarounds: none.

osv:CVE-2026-14620
Complete source record
{
  "id": "6813b8a29630b08fcc324524e5ac1577c7f9b218e767fe6051f6faa6c284fb65",
  "url": "https://osv.dev/vulnerability/CVE-2026-14620",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "webpack-dev-server vulnerable to cross-site request forgery via internal developer endpoints",
    "summary": "webpack-dev-server versions 5.2.5 and earlier expose two internal developer endpoints, /webpack-dev-server/open-editor and /webpack-dev-server/invalidate, that perform state-changing actions on any GET request without verifying that the request originated from the dev server's own page. Any website a developer visits while the dev server is running can trigger these endpoints cross-origin with no interaction beyond the visit. An attacker can open an arbitrary existing local file in the developer's editor, including files outside the project root, and repeated requests can spawn editor processes and force recompilations that degrade the developer's machine. Patches: upgrade to webpack-dev-server 5.2.6. Workarounds: none.",
    "evidence": "osv:CVE-2026-14620",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-14620",
      "aliases": [
        "CVE-2026-14620",
        "GHSA-f5vj-f2hx-8m93"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:N/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/webpack/webpack-dev-server",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "8a37b0ed89d07ca81532188fe19f080a2ee51475"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "5.2.6"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "cpe": "cpe:2.3:a:webpack.js:webpack-dev-server:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "5.2.6"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v5.2.5",
            "v5.2.4",
            "v5.2.3",
            "v5.2.2",
            "v5.2.1",
            "v5.2.0",
            "v5.1.0",
            "v5.0.4",
            "v4.15.1",
            "v5.0.3",
            "v5.0.2",
            "v5.0.1",
            "v5.0.0",
            "v4.15.0",
            "v4.14.0",
            "v4.13.3",
            "v4.13.2",
            "v4.13.1",
            "v4.13.0",
            "v4.12.0",
            "v4.11.1",
            "v4.11.0",
            "v4.10.1",
            "v4.10.0",
            "v4.9.3",
            "v4.9.2",
            "v4.9.1",
            "v4.9.0",
            "v4.8.1",
            "v4.8.0",
            "v4.7.4",
            "v4.7.3",
            "v4.7.2",
            "v4.7.1",
            "v4.7.0",
            "v4.6.0",
            "v4.5.0",
            "v4.4.0",
            "v4.3.1",
            "v4.3.0",
            "v4.2.1",
            "v4.2.0",
            "v4.1.1",
            "v4.1.0",
            "v4.0.0",
            "v4.0.0-rc.1",
            "v4.0.0-rc.0",
            "v4.0.0-beta.3",
            "v4.0.0-beta.2",
            "v4.0.0-beta.1",
            "v3.11.0",
            "v4.0.0-beta.0",
            "v3.10.3",
            "v3.10.2",
            "v3.10.0",
            "v3.9.0",
            "v3.8.2",
            "v3.8.1",
            "v3.8.0",
            "v3.7.2",
            "v3.7.1",
            "v3.7.0",
            "v3.5.1",
            "v3.5.0",
            "v3.4.1",
            "v3.4.0",
            "v3.3.1",
            "v3.3.0",
            "v3.2.1",
            "v3.2.0",
            "v3.1.14",
            "v3.1.13",
            "v3.1.12",
            "v3.1.11",
            "v3.1.10",
            "v3.1.9",
            "v3.1.8",
            "v3.1.7",
            "v3.1.6",
            "v3.1.5",
            "v3.1.4",
            "v3.1.3",
            "v3.1.2",
            "v3.1.1",
            "v3.1.0",
            "v3.0.1-beta.0",
            "v3.0.0",
            "v2.11.1",
            "v2.11.0",
            "v2.10.1",
            "v2.10.0",
            "v2.9.7",
            "v2.9.6",
            "v2.9.5",
            "v2.9.3",
            "v2.9.2",
            "v2.9.1",
            "v2.9.0",
            "v2.8.2",
            "v2.8.1",
            "v2.8.0",
            "v2.6.1",
            "v2.6.0",
            "v2.5.0",
            "v2.4.5",
            "v2.4.4",
            "v2.4.3",
            "v2.4.2",
            "v2.4.1",
            "v2.4.0",
            "v2.3.0",
            "v2.2.1",
            "v2.2.0",
            "v2.2.0-rc.0",
            "v2.1.0-beta.12",
            "v2.1.0-beta.11",
            "v2.1.0-beta.10",
            "v2.1.0-beta.9",
            "v2.1.0-beta.8",
            "v2.1.0-beta.7",
            "v2.1.0-beta.6",
            "v2.1.0-beta.5",
            "v2.1.0-beta.4",
            "v2.1.0-beta.3",
            "v2.1.0-beta.2",
            "v2.1.0-beta.1",
            "v2.1.0-beta.0",
            "v2.0.0-beta",
            "v1.14.1",
            "v1.14.0",
            "v1.13.0",
            "v1.12.1",
            "v1.12.0",
            "v1.11.0",
            "v1.10.1",
            "v1.10.0",
            "v1.9.0",
            "v1.8.2",
            "v1.8.1",
            "v1.8.0",
            "v1.7.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-14620.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:48.601232033Z",
      "provider": "osv",
      "references": [
        "https://cna.openjsf.org/security-advisories.html",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/14xxx/CVE-2026-14620.json",
        "https://github.com/webpack/webpack-dev-server/security/advisories/GHSA-f5vj-f2hx-8m93",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-14620"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-352",
          "CWE-749"
        ],
        "cna_assigner": "openjs",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/14xxx/CVE-2026-14620.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-14620",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 516978,
  "published_at": "2026-07-03T17:00:00.679+00:00"
}