T09 · Insecure Skill Coding Practices
- Location
scripts/konto.sh:2- Finding
Arbitrary Shell Execution Through Sourced Secrets File
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears to support legitimate read-only finance lookups, but it should go through Review because it handles sensitive financial credentials with weak safeguards and includes an analytics command outside its declared personal scope.
Before installing, verify that you trust the Konto service and publisher, use a personal-scoped key for this skill, keep ~/.openclaw/secrets/konto.env private, and ensure KONTO_URL points only to the intended HTTPS Konto endpoint or a deliberate local development server. Avoid placing an analytics-scoped key in this skill's secrets file unless you intentionally want the helper to access analytics data.
scripts/konto.sh:2Arbitrary Shell Execution Through Sourced Secrets File
scripts/konto.sh:3Bearer Credential Can Be Sent to an Untrusted or Plaintext Endpoint
scripts/konto.sh:13Undocumented Analytics Capability Violates the Declared Personal-Only Scope
The skill encourages authenticated requests to a remote service for highly sensitive banking, investment, loan, and transaction data, but does not warn users that personal financial information will be transmitted to and processed by an external endpoint. This creates a real privacy and security risk because users may invoke the skill without understanding the exposure of account balances, transactions, and other sensitive financial details.
This markdown file describes endpoints that expose highly sensitive personal financial data such as account balances, transactions, investments, assets, loans, and a full financial snapshot. Under the markdown-specific warning rule, the documentation should disclose that using these endpoints may affect user privacy or expose sensitive financial information, but no such warning is provided.
The script sources a local secrets file at L02 and uses the resulting API key in Authorization headers for curl requests at L07-L13. There is no comment, prompt, or user-facing output explaining that credentials will be loaded and sent to a remote service, which is relevant for privacy and safety awareness.
No suspicious patterns detected.