chore(deps): update devdependency @nuxt/devtools to v3.3.1 [security] - #926
Open
renovate[bot] wants to merge 2 commits into
Open
chore(deps): update devdependency @nuxt/devtools to v3.3.1 [security]#926renovate[bot] wants to merge 2 commits into
renovate[bot] wants to merge 2 commits into
Conversation
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
3.2.4→3.3.1Nuxt Devtools has a Path Traversal: '../filedir'
CVE-2024-23657 / GHSA-rcvg-rgf7-pppv
More information
Details
Summary
Nuxt Devtools is missing authentication on the
getTextAssetContentRPC function which is vulnerable to path traversal. Combined with a lack of Origin checks on the WebSocket handler, an attacker is able to interact with a locally running devtools instance and exfiltrate data abusing this vulnerability.In certain configurations an attacker could leak the devtools authentication token and then abuse other RPC functions to achieve RCE.
Details
The
getTextAssetContentfunction does not check for path traversals (source), this could allow an attacker to read arbitrary files over the RPC WebSocket.The WebSocket server does not check the origin of the request (source) leading to CSWSH. This may be intentional to allow certain configurations to work correctly.
Nuxt Devtools authentication tokens are placed within the home directory of the current user (source).
In the scenario that:
The malicious webpage can connect to the Devtools WebSocket, perform a directory traversal brute force to find the authentication token, then use the authenticated
writeStaticAssetsfunction to create a new Component, Nitro Handler orapp.vuefile which will run automatically as the file is changed.PoC
POC will exploit the Devtools server on localhost:3000 (you may need to manually restart the server as the restart hook does not always work).
POC: https://devtools-exploit.pages.dev
pnpm run dev.The POC will:
Impact
Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Nuxt DevTools vulnerable to cross-site scripting (XSS)
CVE-2025-52662 / GHSA-xmq3-q5pm-rp26
More information
Details
A vulnerability in Nuxt DevTools has been fixed in version 2.6.4*. This issue may have allowed Nuxt auth token extraction via XSS under certain configurations. All users are encouraged to upgrade.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:H/A:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Unauthenticated 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 the GitHub Advisory Database (CC-BY 4.0).
Release Notes
nuxt/devtools (@nuxt/devtools)
v3.3.1Compare Source
No significant changes
View changes on GitHub
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 was generated by Mend Renovate. View the repository job log.