T09 · Insecure Skill Coding Practices
- Location
SKILL.md:35- Finding
API Key Requested Through the Conversation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 35–55
Vulnerability Type:T09: Insecure Skill Coding Practices
Risk Level: MediumVulnerable Code:
markdown If it is missing, stop and tell the user: > **Welcome to Promify Creatives Generator!** 👋 > > To generate ad creatives, you'll need a free Promify API Key. > > **Get started:** > > 1. **Sign up / Log in** → Visit **[https://promify.ai/login?redirect=/&from=openclaw](https://promify.ai/login?redirect=/&from=openclaw)** (free) > 2. **Copy your API Key** → After logging in, your key appears on the API Key page. > 3. Please paste your API Key here: ### 3.2 Configure OpenClaw Edit the OpenClaw configuration file: `~/.openclaw/openclaw.json` Add or merge the following structure: ```json { "skills": { "entries": { "promify-creative-generator": { "env": { "PROMIFY_API_KEY": "your_actual_api_key_here" } } } } }text ### Technical Analysis The Skill explicitly asks the user to paste a Promify API key into the conversation. API keys are authentication secrets and should not be entered into a conversational channel when protected local configuration is already available. A key pasted into the conversation may become part of conversation history, model context, application telemetry, debugging records, or other logs. Components and personnel permitted to inspect those records could consequently gain access to the credential. The local OpenClaw configuration method documented immediately afterward is sufficient for the declared functionality, so disclosure through chat exceeds the minimum exposure necessary. Sending the key as a bearer credential specifically to the declared Promify API is necessary authentication and is not, by itself, evidence of malicious exfiltration. The vulnerability is the unnecessary request to discl ...[truncated 1131 chars]- Remediation
View remediation
Remediation Suggestions
- Remove the instruction asking users to paste the API key into the conversation.
- Direct users exclusively to a protected environment variable, secret manager, or local OpenClaw configuration.
- State explicitly that the key must never be printed, echoed, included in generated output, or retained in conversational memory.
- Validate only whether the configured value is present; avoid displaying its contents.
- Redact authorization headers and key-like values from diagnostics, errors, and tool logs.
- Apply restrictive filesystem permissions to the configuration file containing the key.
- If a key has already been pasted into chat, advise the user to revoke and rotate it.
