T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:14- Finding
Unused High-Value Credentials Are Declared as Mandatory
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 14-23
Vulnerability Type: Excessive credential access and violation of least privilege
Risk Level: MediumVulnerable Code
yaml credentials: [GREENHELIX_API_KEY, WALLET_ADDRESS, AGENT_SIGNING_KEY, STRIPE_API_KEY] metadata: openclaw: requires: env: - GREENHELIX_API_KEY - WALLET_ADDRESS - AGENT_SIGNING_KEY - STRIPE_API_KEY primaryEnv: GREENHELIX_API_KEYTechnical Analysis
The Skill declares four credentials as required, including
AGENT_SIGNING_KEYandSTRIPE_API_KEY. The reviewed examples operationally referenceGREENHELIX_API_KEY, but no operational use ofAGENT_SIGNING_KEYorSTRIPE_API_KEYwas identified.Requiring an Ed25519 signing key and a payment-processing credential for an educational, non-executable guide exceeds the minimum privileges necessary for its declared functionality. It also conflicts with the guide's statement that its sandbox can be used without an API key.
Even if the Skill itself does not directly exfiltrate these values, placing unnecessary high-value secrets in the Agent's environment increases the consequences of another compromised Skill, unsafe tool invocation, debug logging, environment disclosure, or prompt-driven access to process configuration.
Attack Path
- A user installs or configures the Skill.
- The Skill framework interprets the front matter and requests all four declared credentials.
- The signing and Stripe credentials become available in the Skill or Agent execution environment despite not being needed by the reviewed examples.
- A compromised component, unsafe diagnostic operation, or unrelated Skill with environment access reads the unnecessary credentials.
- The attacker uses the signing key to impersonate the associated agent or uses the Stripe key for operations permitted by its actual server-side scope.
...[truncated 556 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
AGENT_SIGNING_KEY,STRIPE_API_KEY, andWALLET_ADDRESSfrom the mandatorycredentialsandrequires.envdeclarations unless executable examples actually need them. - Require only
GREENHELIX_API_KEYfor authenticated GreenHelix examples. - Make the API key optional when the sandbox genuinely supports unauthenticated access.
- Move payment and signing credentials into separate, opt-in integration guides with explicit scopes and threat warnings.
- Recommend restricted test credentials rather than production credentials.
- Document key rotation and revocation procedures.
- If Stripe integration is later added, use a narrowly restricted test-mode key and never expose it to client-side or general Agent contexts.
- Remove
