T09 · Insecure Skill Coding Practices
- Location
scripts/mxchip_mcp_client.py:61- Finding
OAuth Bearer Token Can Be Sent to a Caller-Controlled Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This smart-home control skill is coherent and not deceptive, but it needs review because it can immediately control physical devices and its token-bearing client accepts an unvalidated endpoint override.
Install only if you trust the MXCHIP service and are comfortable giving the agent control over your Smart Plus devices and scenes. Require explicit confirmation before turning devices on or off, changing air-conditioner settings, or triggering scenes; keep MXCHIP_OAUTH_TOKEN secret; avoid custom base_url values unless validated as the official MXCHIP endpoint; and prefer a pinned dependency set.
scripts/mxchip_mcp_client.py:61OAuth Bearer Token Can Be Sent to a Caller-Controlled Endpoint
requirements.txt:1Unpinned Third-Party Dependency Produces Non-Reproducible Installations
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
**Get your token:**
1. Visit: https://app.api.cloud.mxchip.com:2443/oauth2/mcp/oauth
2. Enter your Smart Plus APP account credentials
3. Copy the OAuth2 access token
## Quick Start
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
**Get your token:**
1. Visit: https://app.api.cloud.mxchip.com:2443/oauth2/mcp/oauth
2. Enter your Smart Plus APP account credentials
3. Copy the OAuth2 access token
## Quick Start
The README promotes tools that can remotely power devices, change air conditioner settings, and trigger scenes, but it does not warn users or integrators about real-world consequences, confirmation requirements, or target verification before execution. In a smart-home context, ambiguous or mistaken commands can cause unauthorized actuation, safety issues, privacy impact, or operational disruption in the physical environment.
The skill exposes environment-variable access, network access, and MCP-based device control but does not declare any tool scope or allowed-tools restrictions. In an agent ecosystem, this weakens policy enforcement and can allow broader-than-expected access to credentials and physical-device control, increasing the chance of unauthorized or accidental actions.
The overview emphasizes complete smart-home control and scene automation but does not clearly warn that commands can immediately affect physical devices or trigger multi-device routines. In a smart-home context, lack of safety disclosure can lead to unsafe agent behavior, unexpected actuation, or triggering of sensitive scenes such as leaving-home or HVAC changes.
The token setup instructions describe obtaining and exporting an OAuth token but do not warn that the token grants network access to the user's smart-home account, device inventory, and automation controls. This omission can cause users or agents to mishandle a credential that enables both privacy exposure and remote physical control.
This documentation enables actions that affect real-world devices in a user's home, including powering devices, adjusting HVAC settings, and triggering scenes, but it does not warn about physical-world consequences or require confirmation for potentially impactful actions. In an agent context, that omission can normalize autonomous execution of commands that may affect safety, comfort, privacy, energy use, or property without adequate user awareness.
The client exposes direct methods to power devices, change HVAC settings, and trigger scenes, and those actions are sent immediately to the remote service with no built-in confirmation, preview, or safety interlock. In an agent setting, this increases the chance of unintended or prompt-induced real-world actions affecting the user's home, especially because scenes may bundle multiple device operations.
The natural-language invocation examples and scene names are exclusively Chinese, which can imply a language-specific interaction model. Because the README does not explicitly state that the skill is China/Chinese-only or offer language alternatives, this may conflict with a policy requiring language choice or opt-in.
The dependency is specified as requests>=2.28.0, which allows any future major or minor release and makes builds non-reproducible. This can introduce vulnerable or breaking versions unexpectedly, and in a smart-home control skill that uses OAuth tokens and remote API calls, dependency drift could affect request handling or credential safety.
requests>=2.28.0
Because requests is not pinned, it is impossible to verify from this manifest whether deployment will use a version affected by known advisories. In this skill's context, the library will likely be used for authenticated calls to Smart Plus APIs, so an affected version could expose tokens, mishandle TLS/session behavior, or otherwise weaken outbound request security.
No suspicious patterns detected.