T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:10- Finding
Unconditional Requirements for Multiple Third-Party Credentials Violate Least Privilege
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:10-17
Vulnerability Type: Excessive credential requirements
Risk Level: MediumVulnerable Code
yaml requires: env: - GOOGLE_CLIENT_ID - GOOGLE_CLIENT_SECRET - GOOGLE_REFRESH_TOKEN - DATAFORSEO_LOGIN - DATAFORSEO_PASSWORD bins: - curlTechnical Analysis
The Skill declares Google OAuth credentials and DataForSEO account credentials as unconditional environment requirements. However, its documented workflows allow users to select SemRush, DataForSEO, or manual data sources. Requiring credentials for multiple providers regardless of the selected workflow violates the principle of least privilege.
Environment variables may be accessible to the agent runtime and tools or companion Skills operating in that environment. Reusable OAuth secrets, refresh tokens, and API credentials therefore become part of the runtime's exposure surface even when they are unnecessary for the current task.
The audited repository does not contain credential-exfiltration logic. The risk arises from unnecessarily exposing sensitive credentials to a broader execution context than the declared workflow requires.
Attack Path
- A user enables the Skill and configures every environment variable declared as required.
- The user selects a workflow that does not require one or more of those credentials, such as manual data analysis or SemRush CSV processing.
- The unused credentials nevertheless remain available in the agent or tool execution environment.
- A compromised companion Skill, unsafe tool, or separate prompt-injection vulnerability in the same runtime reads the exposed environment variables.
- The obtained credentials are reused against the corresponding external service, subject to their configured scopes and provider-side access controls.
Impact Assessment
A successful secondary compromise could expose Google ...[truncated 464 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove unconditional credential requirements from the Skill metadata.
- Request credentials only after the user selects the corresponding provider.
- Make Google and DataForSEO credentials mutually optional rather than jointly mandatory.
- Prefer short-lived, narrowly scoped tokens over reusable account credentials.
- Use read-only OAuth scopes for analytics and search-performance analysis.
- Do not expose secrets to companion Skills or subprocesses unless they explicitly require them.
- Document credential storage, rotation, revocation, and logging requirements.
- Redact secrets from command output, generated files, diagnostic messages, and audit logs.
- Support manual exports without requiring any provider credentials.
