chore(deps): update dependency @nuxt/devtools to v3 [security] #23
No reviewers
Labels
No labels
idea
points
1
points
13
points
2
points
3
points
5
points
8
priority
p0
priority
p1
priority
p2
priority
p3
state
blocked
state
done
state
in-progress
state
ready
state
review
state
triage
status
declined
status
in-progress
status
planned
status
proposed
status
shipped
status
under-review
type
bug
type
epic
type
feature
type
spike
type
story
type
task
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
tti/tti-ux!23
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/npm-nuxt-devtools-vulnerability"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
^2.0.0→^3.0.0Unauthenticated Nuxt DevTools RPC allows arbitrary command execution on the developer's host
CVE-2026-71319 / GHSA-279x-mwfv-vcqv
More information
Details
Impact
Nuxt DevTools (development mode only) exposes a bidirectional RPC channel over the Vite HMR WebSocket via the
nuxt:devtools:rpcplugin. On affected versions the channel has no authentication: any client that can reach the Vite HMR endpoint (ws://<host>:<port>/, subprotocolvite-hmr) can call RPC methods, with no token, handshake, or origin check before the channel is established. TheupdateOptions(),clearOptions(), andopenInEditor()methods do not enforce theensureDevAuthTokencheck that the other mutating methods use.openInEditor()reads the persistedbehavior.openInEditorvalue and passes it to thelaunch-editorpackage, which spawns it as a child process. That value is settable through the equally unauthenticatedupdateOptions(). An attacker who can reach the HMR port can therefore chainupdateOptions('behavior', { openInEditor: '<command>' })thenopenInEditor('<any-existing-file>')to execute an arbitrary program on the developer's machine.The HMR port is reachable by a process on the same host, by any peer on the LAN when the dev server is bound with
nuxi dev --host, or by a malicious website the developer visits while the dev server is running (a browser can open the HMR WebSocket cross-origin). Impact is limited to development environments; production builds do not run DevTools.Patches
Fixed in
@nuxt/devtools@3.3.1. Becausenuxtdepends on@nuxt/devtoolsthrough a^3.xrange, updating is a lockfile refresh / reinstall; nonuxtrelease is required.Workarounds
@nuxt/devtoolsto a patched version.nuxi dev --host) on an untrusted network.devtools: { enabled: false }innuxt.config.References
launch-editor: https://www.npmjs.com/package/launch-editorSeverity
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
The artifact failure details are included below:
File name: package-lock.json
AI review · advisory
Verdict: nothing confirmed — a couple of single-reviewer observations below.
⚑ panel: GPT-OSS 120B · Gemma 4 31B · Devstral 2 123B · Laguna S 2.1 — 1 distinct, 0 confirmed, 0 refuted · web: not used · context: 1 files · 90 codebase · 14 standards chunks (best-grounded: GPT-OSS 120B; smaller windows saw less)
Panel debate — how this review was reached
Grounding — context: 1 files · 90 codebase · 14 standards chunks (best-grounded: GPT-OSS 120B; smaller windows saw less)
Round 1 — independent reviews
Round 2 — cross-examination
Devstral 2 123B#1Version pinning for @nuxt/devtools should use a specific version · confirmed: — · refuted: Gemma 4 31B, Laguna S 2.1Synthesis — Devstral 2 123B wrote the final review from 0 confirmed findings (+1 unconfirmed).
Transcript
rv-20260806170302-ed264f— full round outputs, web results, and model reasoning are viewable by anyone with access to this repository via the AI gateway.Advisory — never a merge gate. Disagree with a finding? Reply on it, or use the finding board under this review. Transcript
rv-20260806170302-ed264f.@ -83,3 +83,3 @@"@fontsource/public-sans": "^5.2.7","@fontsource/work-sans": "^5.2.8","@nuxt/devtools": "^2.0.0","@nuxt/devtools": "^3.0.0",package.json:85· LOW — version pinning for @nuxt/devtools should use a specific versionThe version pinning for @nuxt/devtools uses a caret (^) which allows minor version updates, but the PR title indicates a security update. Security updates should pin to a specific version to ensure the exact version with the security fix is installed.
panel tally 1/4 · reply here or use the finding board to agree/disagree
Superseded by #29. This PR was a pre-2026-08-06 Renovate artifact: it bumped package.json but could not rewrite the lockfile (the github.com toolchain artifactError fixed by our own Renovate image, forgejo-stack PR #36) — merging it as-is would have desynced the lockfile.
Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future
3.xreleases. But if you manually upgrade to3.xthen Renovate will re-enableminorandpatchupdates automatically.If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
Pull request closed