---
title: "CVE-2026-71319: Unauthenticated Nuxt DevTools RPC allows arbitrary command execution on the developer's host"
url: https://erroneo.us/security/cve/CVE-2026-71319/
description: "CVE-2026-71319 (@nuxt/devtools (npm)): Nuxt is an open-source web development framework for Vue.js. Prior to 3.3.1, Nuxt DevTools (development mode only)…"
type: vulnerability-record
section: "Security Digest"
date_published: 2026-08-05
date_modified: 2026-08-07
publisher: erroneo.us
author: erroneo.us Security Desk
cve: "CVE-2026-71319"
kev: false
cvss: 9.6
epss: 0.00629
license: All rights reserved. Quote with attribution and a link.
---

# CVE-2026-71319: Unauthenticated Nuxt DevTools RPC allows arbitrary command execution on the developer's host

**Signal:** Critical and remotely reachable. No known exploitation yet, but it is network-reachable without credentials. (Computed from CISA KEV, EPSS and CVSS; not an editorial verdict.)

## Should you act?

- No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
- EPSS 0.6% , percentile 49: FIRST’s model estimates a 0.6% chance of exploitation activity in the next 30 days, higher than 49% of all scored CVEs (low). EPSS is a probability, not a verdict.
- Needs a user to click or open something. Phishing makes that realistic, but it is not wormable.
- Only applies if your dependency tree includes @nuxt/devtools (npm) < 3.3.1, fixed in 3.3.1 . Check your lockfile, including transitive dependencies.

## What it is

Nuxt is an open-source web development framework for Vue.js. Prior to 3.3.1, Nuxt DevTools (development mode only) exposes a bidirectional RPC channel over the Vite HMR WebSocket via the nuxt:devtools:rpc plugin. On affected versions the channel has no authentication: any client that can reach the Vite HMR endpoint (ws:// : /, subprotocol vite-hmr) can call RPC methods, with no token, handshake, or origin check before the channel is established. The updateOptions(), clearOptions(), and openInEditor() methods do not enforce the ensureDevAuthToken check that the other mutating methods use. openInEditor() reads the persisted behavior.openInEditor value and passes it to the launch-editor package, which spawns it as a child process. That value is settable through the equally unauthenticated updateOptions(). An attacker who can reach the HMR port can therefore chain updateOptions('behavior', { openInEditor: ' ' }) then openInEditor(' ') to execute an arbitrary program on the developer's machine. This issue is fixed in 3.3.1.

## Affected packages

- npm `@nuxt/devtools` < 3.3.1 → fixed: 3.3.1

## Affected products (CVE record)

- nuxt devtools: < 3.3.1

## Severity

- GitHub_M CVSS 3.1: 9.6 `CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H`
- GitHub CVSS 3.1: 9.6 `CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H`

## Exploitation

- CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
- CISA SSVC assessment: exploitation none , automatable no , technical impact total .
- FIRST EPSS (model of 2026-10-21): 0.63% probability of exploitation activity in the next 30 days; percentile 49.

## Sources

- [GitHub Advisory GHSA-279x-mwfv-vcqv](https://github.com/advisories/GHSA-279x-mwfv-vcqv)
- [CVE.org record CVE-2026-71319](https://www.cve.org/CVERecord?id=CVE-2026-71319)
- [NVD entry CVE-2026-71319](https://nvd.nist.gov/vuln/detail/CVE-2026-71319)
- [github.com](https://github.com/nuxt/nuxt/security/advisories/GHSA-279x-mwfv-vcqv)
- [github.com](https://github.com/nuxt/devtools/commit/a7b2718b930766e1ffb0640259d53f5b041a50b4)
- [github.com](https://github.com/nuxt/devtools/releases/tag/v3.3.1)

---
Source page: https://erroneo.us/security/cve/CVE-2026-71319/ · Security Digest: https://erroneo.us/security/ · More: https://erroneo.us/llms.txt
