| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| arcade-mcp-server | pip | < 1.9.1 | 1.9.1 |
The vulnerability is caused by a hardcoded default worker secret, "dev", in the arcade-mcp-server. This allows an attacker to bypass authentication for all MCP worker endpoints by forging a JWT signed with this known secret.
The analysis of the provided patches confirms this. The main patch, in commit 44660d18ceb220600401303df860a31ca766c817, addresses the issue in two key places:
libs/arcade-mcp-server/arcade_mcp_server/settings.py: The ArcadeSettings class, which defines application settings, is modified to remove the default value of "dev" for the server_secret field. This field now defaults to None, requiring an explicit secret to be provided.
libs/arcade-mcp-server/arcade_mcp_server/worker.py: The create_arcade_mcp function, which sets up the server, is changed to no longer fall back to the "dev" secret. Furthermore, it now only initializes and enables the FastAPIWorker (which exposes the sensitive endpoints) if a secret is explicitly provided. This prevents the server from starting in a vulnerable state by default.
Therefore, the function arcade_mcp_server.worker.create_arcade_mcp is identified as the key vulnerable function. It was the component that consumed the insecure default setting and used it to configure the worker's authentication mechanism. While the exploit occurs on the worker API endpoints (e.g., /worker/tools), this function is the one responsible for creating the vulnerable condition during server startup.
arcade_mcp_server.worker.create_arcade_mcplibs/arcade-mcp-server/arcade_mcp_server/worker.py
arcade_mcp_server.settings.ArcadeSettingslibs/arcade-mcp-server/arcade_mcp_server/settings.py
Ongoing coverage of React2Shell