T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:61- Finding
External Script Receives a Sensitive API Credential from a Broad Credential Store
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is not overtly malicious, but it asks the agent to edit OpenClaw configuration and use a stored Firecrawl API key through an external script without clear approval controls.
Review before installing. Use it only if agents should be allowed to update OpenClaw model configuration and access Firecrawl for Wisgate lookups. Require explicit approval before edits or network calls, avoid exposing TOOLS.md, and verify the referenced firecrawl-search script before giving it an API key.
SKILL.md:61External Script Receives a Sensitive API Credential from a Broad Credential Store
The invocation guidance is broad enough to trigger on general model-selection or pricing tasks, not just narrowly scoped Wisgate lookups. Over-broad routing increases the chance this skill is invoked in contexts where its file-editing and external-fetch instructions are inappropriate, amplifying the risk of unintended changes or network access.
The skill is described as a Wisgate query helper, but it instructs the agent to modify local repository configuration in openclaw.json and the canonical MODELS.json. That expands the skill from read-only lookup into state-changing configuration management without explicit user confirmation or safety guardrails, creating a risk of unintended or unauthorized project changes.
The skill directs modifications to openclaw.json and MODELS.json without warning that these are repository configuration/data files or requiring approval. In an agentic workflow, silent config edits can introduce persistence, break builds, alter provider behavior, or cause billing-impacting changes without the user's informed consent.
The Firecrawl instructions cause a request to an external service but do not warn that data about the looked-up model and request context will leave the local environment. In environments with restricted egress or sensitive internal model names, this can violate data-handling expectations and trigger unauthorized external transmission.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Endpoint Type | OpenClaw Provider | Base URL |
|---|---|---|
| Anthropic (Claude) | `custom-api-wisgate-ai` | `https://api.wisgate.ai/` |
| OpenAI compatible | `custom-api-wisgate-ai-openai` | `https://api.wisgate.ai/v1` |
| Google (Gemini) | `custom-api-wisgate-google` | `https://api.wisgate.ai/v1beta` |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Endpoint Type | OpenClaw Provider | Base URL |
|---|---|---|
| Anthropic (Claude) | `custom-api-wisgate-ai` | `https://api.wisgate.ai/` |
| OpenAI compatible | `custom-api-wisgate-ai-openai` | `https://api.wisgate.ai/v1` |
| Google (Gemini) | `custom-api-wisgate-google` | `https://api.wisgate.ai/v1beta` |
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
| Endpoint Type | OpenClaw Provider | Base URL |
|---|---|---|
| Anthropic (Claude) | `custom-api-wisgate-ai` | `https://api.wisgate.ai/` |
| OpenAI compatible | `custom-api-wisgate-ai-openai` | `https://api.wisgate.ai/v1` |
| Google (Gemini) | `custom-api-wisgate-google` | `https://api.wisgate.ai/v1beta` |
The skill tells the agent where to find a stored Firecrawl API key (TOOLS.md), which is credential-discovery guidance outside the core task of querying model metadata. This increases the chance that an agent will access or mishandle secrets unnecessarily, especially when combined with later external-network instructions.
Referencing a stored API key location without any secret-handling guidance normalizes direct credential access by the agent. Even if not exfiltrated, this increases the risk of accidental disclosure in logs, outputs, or follow-on tool invocations.