You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
CLI 1.5.47: on a 401 the interactive CLI starts npx -y mcp-remote with no version pinned, in every OAuth profile we tested #13429
@continuedev/cli 1.5.47 is the current release on npm. When isAuthError classifies an error as authentication, an interactive session falls back to npx -y mcp-remote <server-url> in MCPService.ts. The predicate covers HTTP 401 and 405 and any error message containing "401", "405" or "Unauthorized". Headless mode skips this branch.
The package name carries no version. npx uses a project-local or cached copy if there is one, and otherwise the registry's latest. The user never chooses which.
We ran CLI 1.5.47 on Windows against a local synthetic OAuth and MCP server, in four OAuth profiles. They were a public client without dynamic registration, a confidential client without it, a Client ID Metadata Document client, and dynamic registration enabled. A stub npx placed first on PATH recorded its arguments and exited without starting anything.
In all four interactive profiles the CLI answered the first 401 by calling npx with -y mcp-remote http://127.0.0.1:<port>/mcp. That includes the profile with dynamic registration available. The headless run stopped at the authorization challenge without that call. No bridge process ever ran.
The user configured a remote HTTP server and gets a local Node process from npm that they never named, at a version nobody chose. Five published CVE records on mcp-remote stem from our reports, and CISA-ADP scored them up to 9.8 Critical (advisories). On 15 October 2026 the then-current 0.15.1 still followed the request paths of two of them, CVE-2026-51994 and CVE-2026-51995. No release since, 0.15.2 included, states a fix. Because the bridge is the CLI's only OAuth path, every OAuth-protected server takes this route. Servers that offer dynamic registration take it too.
Asks
Use OAuth in the CLI's own MCP path (Continue core already has MCPOauth.ts, which the CLI does not call), and start a bridge only on explicit opt-in.
While the fallback stays, pin an exact mcp-remote version and say in the terminal that a bridge is being started.
Mention the fallback in the CLI MCP documentation.
Limits. One CLI build, one OS, a synthetic provider. The stub caught the launch, so what the bridge would have done was not measured. We reported the source-level fallback privately on 10 October 2026. There was no response as of 25 October.
I can take this. On 401 the CLI launches npx -y mcp-remote with no version pin. Plan is to pin a known version (or make it configurable) so auth recovery doesn't silently pull latest. Okay if I open a PR?
Thanks for the interest. The fix is small and comes straight from the measured runs in this issue, so I'm opening the PR myself today. Review welcome once it's up.
Activity
ShenweiFFF commentedon Nov 3, 2026
I can take this. On 401 the CLI launches
npx -y mcp-remotewith no version pin. Plan is to pin a known version (or make it configurable) so auth recovery doesn't silently pull latest. Okay if I open a PR?playb0t commentedon Nov 3, 2026
Thanks for the interest. The fix is small and comes straight from the measured runs in this issue, so I'm opening the PR myself today. Review welcome once it's up.