T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/authorize.py:34- Finding
Over-Privileged Shared Token Enables Unrestricted MCP Tool Invocation
- Content
View full analysis
dict[str, Any]: session = _session_with_registration( state_dir=Path.home() / ".beatra", post_json=_default_post_json, ) if command == "tools": return session.request(2, "tools/list", {}) try: arguments = json.load(os.sys.stdin) except json.JSONDecodeError as exc: raise RuntimeError("Tool arguments on stdin must be one JSON object") from exc if not isinstance(arguments, dict): raise RuntimeError("Tool arguments on stdin must be one JSON object") assert tool_name is not None return session.request( 2, "tools/call", {"name": tool_name, "arguments": arguments}, ) ``` ```python call = subparsers.add_parser("call", help="Call one tool with a JSON object on stdin") call.add_argument("tool_name") ``` ### Technical Analysis The declared creator-account workflow requires public social lookup, image generation or editing, speech synthesis, media upload, model and voice discovery, task polling, and billing support. The requested token scope additionally grants video generation, music generation, and voice-writing privileges. The client does not enforce a package-specific allowlist. Although the documentation limits social lookups to particular operation keys, those instructions are not an access-control boundary. Any process ...[truncated 1764 chars]- Remediation
View remediation
