T09 · Insecure Skill Coding Practices
- Location
scripts/status.sh:5- Finding
Hardcoded Reusable Supabase Anonymous API Token
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent with its dashboard purpose, but it asks users to delegate an OpenClaw API key to a hosted cloud proxy and includes an under-disclosed remote status check.
Review before installing or using setup. Only provide a dedicated, least-privilege OpenClaw Gateway key, understand that it will be stored and used by hosted Lovable Cloud infrastructure, and revoke it when no longer needed. Running the status script contacts a Supabase-hosted endpoint using a bundled anonymous token.
scripts/status.sh:5Hardcoded Reusable Supabase Anonymous API Token
SKILL.md:32Gateway Credential Authority Delegated to an External Hosted Proxy
The documented behavior says the skill opens a visual dashboard and setup flow, but the analyzed behavior reportedly performs backend status/configuration checks and contacts an undisclosed remote Supabase endpoint using hardcoded connection details. This mismatch is dangerous because it prevents informed consent, hides external data flows, and can be used to exfiltrate metadata or interact with remote infrastructure under the guise of a harmless UI action.
The skill advertises shell-based quick actions but does not declare any explicit tool scope or allowed-tools boundary. That creates an authorization and review gap: an agent may invoke shell commands without the user or platform having a clearly constrained permission model, increasing the chance of unintended local command execution.
The manifest describes a skill for opening a mission-control dashboard and visually inspecting agent and gateway information. This script instead performs a backend HTTP call to an openclaw-status function to determine whether gateway secrets are configured, which is a setup/health-check operation rather than opening or presenting the dashboard itself.
The script silently sends authentication material in both apikey and Authorization headers to a remote Supabase function without any user disclosure or consent prompt. Even though the embedded token appears to be an anonymous key, transmitting credentials from a local agent skill to a remote service creates an undisclosed trust boundary and can expose metadata about skill execution while normalizing hardcoded secret-like values in distributed scripts.