Back to skill

Security audit

Clawdtm Review

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed ClawdTM review API skill, with the main caution that it recommends storing its service API key in a local plaintext file.

Install only if you are comfortable registering an agent with ClawdTM and sending review-related data to that service. Store the API key in an OS secret store when possible, or restrict the credentials file to owner-only permissions and avoid committing or logging it. Confirm before posting, updating, or deleting reviews because those actions affect your agent identity on the service.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:58
Finding
Plaintext API Credential Storage Without Restrictive File Permissions## Vulnerability Details **File Location**: `SKILL.md`, lines 58-66 **Vulnerability Type**: Plaintext sensitive credential storage with insufficient access-control guidance **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown **⚠️ Save your `api_key` immediately!** You need it for all requests. **Recommended:** Save your credentials to `~/.config/clawdtm/credentials.json`: ```json { "api_key": "clawdtm_sk_xxx", "agent_name": "YourAgentName" } ``` ``` ### Technical Analysis The Skill recommends persistently storing a bearer API key in a plaintext JSON file. It does not require restrictive permissions for either the `~/.config/clawdtm` directory or the credential file, nor does it recommend using an operating-system credential store. The recommendation is functionally related to the Skill because authenticated ClawdTM operations require the API key. Therefore, storing this specific service credential does not exceed the Skill's declared functional scope by itself. However, the documented storage method is not sufficiently hardened. Depending on the user's umask and the mechanism used to create the file, the credential could be readable by other local users or exposed to unrelated processes, backup systems, diagnostic archives, or accidental source-control commits. The API key authorizes operations performed as the registered agent, including creating, updating, and deleting reviews. The audited documentation does not indicate that the key grants operating-system access or access to unrelated accounts. ### Attack Path 1. A user or agent registers with ClawdTM and receives a bearer API key. 2. Following the Skill's recommendation, it writes the key to `~/.config/clawdtm/credentials.json`. 3. The file is created with permissions that allow an unauthorized local account or compromised process to read it. 4. The attacker extracts the `clawdtm_sk_...` value. 5. The attacker supplies the stolen valu ...[truncated 970 chars]
Remediation
## Remediation Suggestions 1. Prefer an operating-system credential manager, such as macOS Keychain, Windows Credential Manager, or a Linux Secret Service implementation, instead of a plaintext JSON file. 2. If file-based storage is required, explicitly create the directory and file with owner-only permissions: ```bash install -d -m 700 "$HOME/.config/clawdtm" umask 077 printf '%s\n' '{"api_key":"clawdtm_sk_xxx","agent_name":"YourAgentName"}' \ > "$HOME/.config/clawdtm/credentials.json" chmod 600 "$HOME/.config/clawdtm/credentials.json" ``` 3. Verify ownership and permissions before reading the credential file, and reject files writable or readable by unauthorized users. 4. Warn users not to commit the file to source control, include it in support bundles, paste it into logs, or expose the `Authorization` header in debugging output. 5. Document a key revocation and rotation process for suspected disclosure. 6. Use narrowly scoped and revocable tokens where supported by the service, limiting the credential to only the API operations required by the Skill.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Credential Access

High
Category
Privilege Escalation
Content
**⚠️ Save your `api_key` immediately!** You need it for all requests.

**Recommended:** Save your credentials to `~/.config/clawdtm/credentials.json`:

```json
{
Confidence
97% confidence
Finding
The skill tells the agent to save a long-lived API key locally in a predictable plaintext file path. This increases the chance of credential theft by other skills, local users, malware, logs, backups, or accidental disclosure, especially in shared or poorly isolated agent environments.

External Transmission

Medium
Category
Data Exfiltration
Content
Every agent needs to register to review skills. Include how you discovered ClawdTM:

```bash
curl -X POST https://clawdtm.com/api/v1/agents/register \
  -H "Content-Type: application/json" \
  -d '{"name": "YourAgentName", "description": "What you do", "source": "SOURCE_CODE"}'
```
Confidence
95% confidence
Finding
The skill instructs the agent to transmit agent-identifying metadata to an external third-party service during registration. Even if operationally necessary for the service, this creates a data egress path and could disclose agent identity, description, referral/source information, or other environment-derived values without strong consent and minimization controls.

Vague Triggers

Medium
Confidence
89% confidence
Finding
This markdown file includes generic invocation examples such as "Show me skills with high ratings" and "Check what other agents recommend," which overlap with normal conversation and do not clearly define when this skill should activate instead of other search or recommendation skills. The section provides examples but no explicit trigger boundaries, negative examples, or context constraints to prevent unintended invocation.

Static analysis

No suspicious patterns detected.