Back to skill

Security audit

Safety Checker

Security checks for vulnerabilities and agentic risk

Overview

The core safety-checking behavior is coherent, but the install instructions rely on mutable remote sources and promote installing a broader skill suite outside this reviewed artifact.

Review before installing. Prefer a pinned ClawHub version or immutable Git commit, install only camino-safety-checker rather than the full companion suite, and only use it when you are comfortable sending the queried coordinates, radius, and API key to Camino's external API.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:15
Finding
Unpinned Third-Party Package and Repository Execution## Vulnerability Details **File Location**: `SKILL.md`, lines 15–26 **Vulnerability Type**: Unpinned and mutable third-party installation sources **Risk Level**: Medium ### Vulnerable Code ```bash # Install all skills from repo npx skills add https://github.com/barneyjm/camino-skills # Or install specific skills npx skills add https://github.com/barneyjm/camino-skills --skill camino-safety-checker ``` ```bash npx clawhub@latest install camino-safety-checker # or: pnpm dlx clawhub@latest install camino-safety-checker # or: bunx clawhub@latest install camino-safety-checker ``` ### Technical Analysis The documented installation commands execute package tooling and install content obtained from mutable remote sources. The GitHub repository URL is not pinned to an immutable commit, while the `@latest` package tag deliberately resolves to whichever release is current when the command runs. No version pin, commit hash, integrity digest, or signature-verification procedure is provided. Consequently, the code executed or installed by these commands may differ from the content that was audited. Installing all Skills from the repository further expands the trust boundary to companion Skills that are not present in this project artifact. This is a supply-chain weakness; the audited script itself does not contain evidence of an embedded malicious payload. ### Attack Path 1. An attacker compromises the upstream package, repository, release process, registry account, or maintainer credentials. 2. The attacker publishes malicious package code under the mutable `latest` tag or modifies the repository's current contents. 3. A user follows one of the documented `npx`, `pnpm dlx`, or `bunx` installation commands. 4. The package runner retrieves the attacker-controlled version and may execute its lifecycle or command-line code under the user's account. 5. The malicious installer can act with the filesystem, network, environmen ...[truncated 663 chars]
Remediation
## Remediation Suggestions - Pin package runners to audited, exact package versions instead of using `@latest`. - Pin GitHub installations to an immutable, reviewed commit hash or signed release tag. - Provide cryptographic integrity hashes or signature-verification instructions for downloaded artifacts. - Install only the required Skill rather than the entire companion suite. - Review package lifecycle scripts and dependency trees before installation. - Use a lockfile where supported and enable registry provenance or signature verification. - Run installation with least privilege in an isolated environment without unnecessary credentials. - Establish a controlled update process in which new versions are reviewed before changing the documented pins.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Agent Config Directory Access

High
Category
Agent Snooping
Content
**Add your key to Claude Code:**

Add to your `~/.claude/settings.json`:

```json
{
Confidence
90% confidence
Finding
Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Lp3

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding
The skill explicitly requires shell-capable binaries (`curl`, `jq`) but does not declare a restrictive tool scope such as `permissions` or `allowed-tools`. In an agent environment, this creates unnecessary ambient authority: an agent invoking the skill may have broader shell access than is needed, increasing the risk of unintended command execution or abuse if downstream scripts are modified or inputs are mishandled.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
Using `npx skills add https://github.com/barneyjm/camino-skills` without a pinned version or commit causes installation to trust the latest remote state of the package/repository. That introduces a supply-chain risk: a future malicious or compromised update could change what gets installed and executed in agent environments.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
The instruction to install a specific skill from a GitHub repository via `npx skills add ... --skill camino-safety-checker` still relies on an unpinned remote source. Even though the selected skill is narrower, the fetched repository contents can change over time, enabling supply-chain compromise.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
`npx clawhub@latest install camino-safety-checker` uses a floating `latest` package version, which can silently pull new code at install time. In a compromised publisher or dependency scenario, this can lead to execution of unintended code during installation.

External Transmission

Medium
Category
Data Exfiltration
Content
./scripts/safety-checker.sh '{"location": {"lat": 37.7749, "lon": -122.4194}, "radius": 800}'
```

### Via curl

```bash
curl -X POST -H "X-API-Key: $CAMINO_API_KEY" \
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
97% confidence
Finding
The script transmits precise latitude/longitude and search radius to a third-party API, which is sensitive location data. Although this is functionally necessary for the skill, the script provides no explicit user-facing disclosure, consent prompt, or minimization controls, so users may unknowingly expose precise whereabouts to an external service.

External Transmission

Medium
Category
Data Exfiltration
Content
}')

# Make context API request
curl -s -X POST \
    -H "X-API-Key: $CAMINO_API_KEY" \
    -H "Content-Type: application/json" \
    -H "X-Client: claude-code-skill" \
Confidence
94% confidence
Finding
This POST request sends user-supplied location context and an API key to an external network endpoint. The transmission itself is over HTTPS and not obviously malicious, but in a safety-focused skill handling late-night location queries, disclosure and privacy handling are important because precise location can reveal highly sensitive movement or presence information.

External Transmission

Medium
Category
Data Exfiltration
Content
-H "Content-Type: application/json" \
    -H "X-Client: claude-code-skill" \
    -d "$CONTEXT_BODY" \
    "https://api.getcamino.ai/context" | jq .
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
-H "Content-Type: application/json" \
    -H "X-Client: claude-code-skill" \
    -d "$CONTEXT_BODY" \
    "https://api.getcamino.ai/context" | jq .
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.