T09 · Insecure Skill Coding Practices
- Location
SKILL.md:52- Finding
Bearer credential can be transmitted to an untrusted or plaintext API endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent Praesidia API integration, but it needs Review because it can change live guardrail settings and send authenticated requests to configurable endpoints without strong safety boundaries.
Install only if you trust Praesidia and the configured API endpoint. Prefer the default HTTPS production URL, avoid sending production keys to custom or plaintext endpoints, use least-privilege and separate read/write keys, and require explicit confirmation before applying or changing guardrails. Treat any text submitted for validation as data sent to Praesidia.
SKILL.md:52Bearer credential can be transmitted to an untrusted or plaintext API endpoint
README.md:95README guidance permits authenticated requests to arbitrary or plaintext endpoints
The README encourages broad natural-language triggering around phrases like agent safety, trust, and securing agents, but does not define tighter preconditions or consent boundaries for when the skill should activate. In an agentic environment, this can cause over-invocation of a networked skill that makes external trust assertions or leads into administrative actions based on loosely related user prompts.
The skill documents state-changing guardrail application behavior and frames it as a normal assistant action, but it does not require an explicit confirmation step before modifying live security configuration. This is dangerous because a user request phrased conversationally could cause an agent to alter production guardrails, potentially blocking traffic, redacting content, or weakening protections if parameters are misunderstood.
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
### Skill Not Loading
1. Check file location: `~/.openclaw/skills/praesidia/SKILL.md`
2. Verify YAML frontmatter is valid
3. Restart OpenClaw
4. Check OpenClaw logs for errors
The troubleshooting example includes a curl command with an Authorization header against the production API, normalizing direct manual use of bearer credentials and increasing the chance users copy secrets into shells, logs, history, or support channels. While not malicious, this creates avoidable credential-handling risk, especially because the example uses a production-style key prefix and a live endpoint.
curl -H "Authorization: Bearer pk_live_..." \
https://api.praesidia.ai/agents/discovery
The manifest description says to use the skill when the user mentions broad terms like "security policies," "content moderation," or asks "find agents that can [task]," which are not narrowly scoped to Praesidia-specific workflows. Without clearer constraints or exclusion examples, the skill could be invoked for many generic security or discovery requests that were not intended for this integration.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Compliance: SOC2, GDPR Last verified: 2 days ago
Agent card: https://api.praesidia.ai/agents/chatbot-v2/agent-card
---
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Compliance: SOC2, GDPR Last verified: 2 days ago
Agent card: https://api.praesidia.ai/agents/chatbot-v2/agent-card
---
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Compliance: SOC2, GDPR Last verified: 2 days ago
Agent card: https://api.praesidia.ai/agents/chatbot-v2/agent-card
---
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Compliance: SOC2, GDPR Last verified: 2 days ago
Agent card: https://api.praesidia.ai/agents/chatbot-v2/agent-card
---
The skill instructs the agent to perform a configuration-changing POST that enables guardrails on an agent without requiring an explicit confirmation step or warning that this modifies live security policy. In an agentic environment, that can lead to unauthorized or accidental state changes, service disruption, or policy misconfiguration if the user's request is ambiguous or maliciously framed.
The skill sends arbitrary user-provided content to a remote validation API without an explicit privacy notice or data-handling warning. If users paste sensitive prompts, personal data, credentials, or regulated content, the agent may transmit that data off-platform unexpectedly, creating confidentiality and compliance risk.
The Security & Privacy section claims at L485 that API keys are 'never exposed to users'. However, the error-handling guidance at L363 tells the agent to direct the user to check PRAESIDIA_API_KEY in a specific local config file path. While it does not print the secret value itself, this contradicts the stronger documentation claim that key handling details are never exposed to users.
Detected: suspicious.exposed_secret_literal