T09 · Insecure Skill Coding Practices
- Location
SKILL.md:44- Finding
API Key Exposed Through MCP URL Query Parameter
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This looks like a real PlusE financial-data skill, but it needs Review because its setup can expose an API key and it includes some broad MCP behavior beyond market-data retrieval.
Install only if you trust PlusE with your financial research queries and API usage. Prefer bearer-header or protected secret configuration over putting the API key in the MCP URL, rotate any key already used that way, and avoid enabling implicit invocation unless you want the agent to call this service automatically for finance-related prompts.
SKILL.md:44API Key Exposed Through MCP URL Query Parameter
plusefin.py:38Unencoded User Input Alters Authenticated API URLs
The skill declares environment and network-dependent capabilities but does not constrain tool scope with explicit permissions or allowed-tools. In an agent environment, this creates unnecessary ambiguity about what the skill may invoke, increasing the chance of over-broad tool access or unintended external calls.
The skill instructs agents to send user financial queries and bearer-authenticated requests to external PlusE endpoints without any user-facing disclosure about data sharing. This can expose sensitive investment interests, prompts, and API credentials to a third-party service, which is especially significant in finance-related contexts.
A general-purpose calculate tool that executes Python expressions is broader than the skill's stated purpose and can become an arbitrary code execution primitive depending on the host MCP implementation. Even if intended for math, expression evaluators in Python are frequently abusable to access objects, imports, files, or system functionality unless heavily sandboxed.
The skill enables implicit invocation without any visible trigger constraints, which can cause the agent to call this financial-analysis capability in situations the user did not clearly request. Because the skill can access broad financial, sentiment, macroeconomic, and prediction functionality, over-broad automatic activation increases the risk of unintended data access, misleading automated financial guidance, or prompt-surface abuse through adjacent user context.
The manifest scope is financial research and market data access through PlusE. A standalone current-time utility is a generic helper capability rather than a direct financial research function, and its presence is not explained as necessary for the skill's declared purpose.
The top-level docstring presents the available commands as the skill's interface, but the implemented command table also includes options-analyze and sentiment-trend, which are omitted from that documentation. This creates a mismatch between what the file claims it does and the functionality actually exposed in code.
No suspicious patterns detected.