Rightshold™ Sign up

Answers · MCP security

Is the MCP Inspector safe to run while I build an MCP server? Which version fixes CVE-2025-49596 and the advisories published since, and how should I run it?

Last updated

TL;DR: Run 2.14.0 or later (npm tag latest, released November 5, 2026), or 1.0.4 if you're staying on the v1 line, and keep it bound to localhost with its API token switched on. The Inspector is the official MCP tool for testing servers, and its local backend can launch processes, so a bug that lets a web page or a remote server reach that backend can mean commands run on your machine. That has happened more than once. CVE-2025-49596 (CVSS 9.4, fixed in 0.14.1 in June 2025) let any website you visited start commands through the unauthenticated proxy; the fix added a session token and an Origin check. CVE-2025-58444 (fixed in 0.16.6) let a malicious remote server do it through a crafted OAuth redirect URL. On October 21, 2026 the project published a further batch, including two rated critical (a malicious OAuth callback switching the connection to a local command, and a remote MCP App stealing the proxy token; both fixed in 1.0.3), a Windows/WSL command injection through the OAuth authorization URL and an incomplete DNS-rebinding fix that could leak the API token and stored OAuth tokens (both fixed in 2.12.0). Three medium issues were fixed in 2.14.0 and 1.0.4 on November 5. So upgrade everywhere it's installed, never set DANGEROUSLY_OMIT_AUTH or bind it to 0.0.0.0, and connect it only to servers you'd be willing to run code from.

What should I check, step by step?

1. Find every copy: run npm ls -g @modelcontextprotocol/inspector, check each project's node_modules and lockfile, and remember that npx can run a cached older version. Pin @modelcontextprotocol/inspector@2.14.0 or later (or @v1-latest, currently 1.0.4) instead of relying on whatever npx resolves.

  1. v2 needs Node ^22.23.4, ^24.22.1 or >=26.12.1. If an old Node is what keeps you on an old Inspector, upgrade Node rather than staying on a vulnerable release.
  2. Leave authentication on. Don't set DANGEROUSLY_OMIT_AUTH. One of the October advisories (GHSA-wmjf-2m46-2352) showed that with auth off, requests with no Origin header could reach process launch without any token.
  3. Keep the default bind of 127.0.0.1. v2 refuses 0.0.0.0, :: or an empty HOST unless DANGEROUSLY_BIND_ALL_INTERFACES is set; don't set it on a laptop. In Docker, publish ports as -p 127.0.0.1:6274:6274, not -p 6274:6274.
  4. Treat the API token like a password. It's printed in the launch banner and guards every /api route; if you set your own with MCP_INSPECTOR_API_TOKEN, use at least 32 random characters, and don't paste the banner URL into chats, tickets or screenshots.
  5. Point the Inspector only at servers you'd be willing to run code from. CVE-2025-58444 and three of the October advisories start with the Inspector connecting to a malicious remote server or opening its OAuth flow, before you call a single tool.
  6. Close the Inspector when you're done testing instead of leaving it running in a terminal while you browse. Several of these attacks only need you to visit a web page while it's up.
  7. If you ran a vulnerable version and connected it to an unfamiliar server or browsed untrusted sites while it was running, check for unexpected processes and startup items and rotate tokens the Inspector stored. v2 keeps OAuth tokens and stdio env values in the OS keychain, or in ~/.mcp-inspector/secrets.json where there's no keychain.
  8. Watch the advisories page (github.com/modelcontextprotocol/inspector/security/advisories) or enable Dependabot or npm audit alerts for the package, since fixes have arrived in batches.

Why can a bug in the MCP Inspector run commands on my machine?

The Inspector has a web UI and a local backend. To test a stdio MCP server, the backend starts the server as a child process from a command and arguments you give it. Anything that can send that backend a request with its token can choose the command. That's why every serious Inspector advisory has ended in the same place: getting a request, or the token, to the backend.

What was MCP Inspector CVE-2025-49596 and how was it fixed?

Before 0.14.1, the Inspector's proxy accepted requests with no authentication. Oligo showed that a page on any website could send a request to http://0.0.0.0:6277/sse with transportType=stdio and a command of its choosing, because some browsers let public pages reach 0.0.0.0 (the "0.0.0.0-day" Oligo had reported in 2024), and that DNS rebinding worked too. Merely visiting the page while the Inspector ran was enough.

What MCP Inspector security advisories were published in 2026?

On October 21, 2026 the project published nine advisories. Two are rated critical (CVSS 9.6): a malicious server's OAuth callback could append transport=stdio and a command to the Inspector's callback URL, which the UI read and then connected with (GHSA-4fc4-wcmh-4g86, affecting 0.13.0 to 1.0.2); and a remote MCP App running in the Inspector's sandbox could obtain the proxy token and launch commands (GHSA-6x67-4w4w-9f3w, 0.20.0 to 1.0.2). Both are fixed in 1.0.3.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Before I point the MCP Inspector at this remote MCP server, what does it serve right now, has that changed from what was recorded, and does any tool definition carry hidden text?”

One-click setup

{
  "tool": "precall_check",
  "arguments": {
    "url": "<the server's https MCP URL>"
  }
}

Rightshold reports what an MCP endpoint serves and what it has on record about it. It isn't affiliated with the MCP project, doesn't scan your machine or packages, and an unchanged answer isn't a finding that a server is safe to connect to. Advisory details are as published by the Inspector project and the researchers cited, checked on November 10, 2026.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'