T09 · Insecure Skill Coding Practices
- Location
setup.sh:49- Finding
Persistent storage of cloud API credentials without explicit permission hardening
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is coherent for Tencent Cloud RUM analysis, but its setup stores reusable cloud credentials in plaintext and globally installs a package automatically.
Install only with a dedicated least-privilege Tencent Cloud key limited to required RUM/APM read access. Treat the configured SecretId and SecretKey as reusable cloud account secrets, avoid committing or sharing the mcporter config, restrict $HOME/.mcporter permissions, and rotate the keys if the file may have been exposed. Review the global npm install step before running setup.sh.
setup.sh:49Persistent storage of cloud API credentials without explicit permission hardening
setup.sh:10Automatic global installation of an externally retrieved npm package
Without declared permissions the skill's intent is opaque and cannot be validated.
The skill instructs users to provide long-lived Tencent Cloud SecretId and SecretKey credentials, including placing them in MCP headers, without a prominent warning that these are highly sensitive account secrets. This increases the risk of accidental exposure through logs, screenshots, copied configs, chat transcripts, or reuse in insecure environments, potentially enabling unauthorized access to RUM data or broader Tencent Cloud resources depending on IAM scope.
The document includes a concrete example for querying logs of a specific user via a unique identifier (uin) without any privacy guardrails, approval requirements, or data-minimization guidance. In a monitoring skill, this can normalize targeted retrieval of user activity and expose sensitive behavioral or debugging data beyond what is necessary for aggregate performance analysis.
The skill documentation instructs users to supply long-lived SecretId and SecretKey headers but provides no warning about secure handling, storage, logging, or least-privilege scoping of those secrets. In an agent/tooling context, this increases the risk that operators paste sensitive cloud credentials into configs, prompts, repos, or logs, which could enable unauthorized access to Tencent Cloud telemetry or broader account resources if overprivileged keys are used.
The script persists Tencent Cloud SecretId and SecretKey to $HOME/.mcporter/mcporter.json in plaintext, creating a durable local copy of long-lived credentials. Any local user, malware, backup system, or tool that can read the home directory may recover these secrets, and the script provides no warning, permission tightening, or safer alternative despite handling cloud API credentials.
The manifest describes a skill for querying and analyzing Tencent Cloud RUM data, but this file additionally instructs users to provision and pass raw Tencent Cloud API credentials in HTTP headers. While authentication may be necessary for backend connectivity, exposing credential-handling instructions in the skill docs is a separate capability not justified by the user-facing analysis purpose itself.
No suspicious patterns detected.