Back to skill

Security audit

Camino Places.Bak

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims: it sends place or address lookups to the Camino API and returns location results, with some normal setup and privacy cautions to consider.

Before installing, prefer a pinned or reviewed ClawHub version rather than mutable @latest or an unpinned GitHub URL. Treat place searches and addresses as data sent to Camino, and store CAMINO_API_KEY only in agent settings you trust and control.

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:11
Finding
Unpinned Installation Sources Permit Supply-Chain Code Substitution## Vulnerability Details **File Location**: `SKILL.md`, lines 11-24 **Vulnerability Type**: Unpinned third-party dependencies and mutable installation sources **Risk Level**: Medium ```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 places ``` **Via clawhub:** ```bash npx clawhub@latest install places # or: pnpm dlx clawhub@latest install places # or: bunx clawhub@latest install places ``` ### Technical Analysis The documented installation commands obtain executable tooling and skill content from mutable external sources. The GitHub repository URL is not pinned to an immutable commit or signed release, while the ClawHub commands explicitly select the mutable `latest` package version. Package runners such as `npx`, `pnpm dlx`, and `bunx` download and execute package code in the installing user's environment. Consequently, the code executed by these commands can differ from the version reviewed during this audit. No evidence establishes that the current upstream packages are malicious; the vulnerability is the absence of version pinning and integrity verification. ### Attack Path 1. An attacker compromises the upstream repository, package registry account, maintainer credentials, or package publication process. 2. The attacker modifies the repository's default branch or publishes a malicious package version that becomes `latest`. 3. A user follows one of the documented installation commands. 4. The package runner retrieves the altered dependency or installer without validating it against an audit-approved commit or integrity digest. 5. Attacker-controlled installation or lifecycle code executes with the privileges of the user running the command. ### Impact Assessment Successful exploitation could provide arbitrary code execution under the installing user's account. ...[truncated 434 chars]
Remediation
## Remediation Suggestions - Pin the installation tool to a reviewed exact version instead of using `@latest`, for example `clawhub@X.Y.Z`. - Pin the GitHub source to an immutable, reviewed commit SHA or cryptographically signed release tag rather than the mutable default branch. - Publish and verify integrity hashes or signatures for both the installer and skill artifact before execution. - Use package-manager lockfiles where applicable and enforce integrity metadata during automated installation. - Document a verification procedure that checks the expected repository commit, package digest, and publisher identity. - Review lifecycle scripts and downloaded artifacts before executing installation commands, particularly in privileged or CI environments. - Avoid running package installers with administrative privileges and use a sandboxed or otherwise least-privileged environment.
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 (12)

Agent Config Directory Access

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

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

```json
{
Confidence
91% confidence
Finding
Instructing users to modify `~/.claude/settings.json` involves access to an agent configuration directory that may contain sensitive settings, tokens, or broader environment configuration. In a tool-using assistant context, normalizing writes to this path increases the risk of credential exposure, unauthorized config changes, or accidental persistence of secrets in an unsafe location.

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill demonstrates shell-based installation and usage patterns but does not declare an explicit tool scope such as permissions or allowed-tools. In an agent environment, this can cause overbroad execution capability or ambiguous trust boundaries, increasing the chance that shell commands are run when the user did not intend that level of access.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
Using `npx skills add https://github.com/barneyjm/camino-skills` without pinning a version, tag, or commit means the installed code can change over time. This creates a supply-chain risk where a compromised upstream package or repository update could introduce malicious behavior into the agent skill installation flow.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The command `npx skills add https://github.com/barneyjm/camino-skills --skill places` still pulls code from an unpinned remote source. Even though it targets one skill, the fetched installer logic or repository contents may change, enabling arbitrary changes after the documentation is published.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
`npx clawhub@latest install places` explicitly tracks the latest version, which is mutable and may introduce unreviewed code at install time. In agent ecosystems, unpinned bootstrap tools are a common supply-chain entry point because they run code before the user can inspect the installed skill.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The trial signup example sends the user's email address to an external service but does not clearly disclose privacy implications, retention expectations, or that personal data is being transmitted. This can lead users or agents to share personally identifiable information without informed consent or appropriate minimization.

External Transmission

Medium
Category
Data Exfiltration
Content
**Instant Trial (no signup required):** Get a temporary API key with 25 calls:

```bash
curl -s -X POST -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}' \
  https://api.getcamino.ai/trial/start
```
Confidence
88% confidence
Finding
This example transmits user-supplied email data to an external endpoint. While expected for obtaining a trial API key, it is still a real data egress event and is more sensitive because the skill documentation frames it as a quick setup step without emphasizing that personal data leaves the local environment.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
curl -s -X POST -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}' \
  https://api.getcamino.ai/trial/start
```

Returns: `{"api_key": "camino-xxx...", "calls_remaining": 25, ...}`
Confidence
50% 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
```bash
curl -s -X POST -H "Content-Type: application/json" \
  -d '{"email": "you@example.com"}' \
  https://api.getcamino.ai/trial/start
```

Returns: `{"api_key": "camino-xxx...", "calls_remaining": 25, ...}`
Confidence
50% 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
fi

# Make 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
91% confidence
Finding
This code performs an outbound POST request carrying raw user input and an API credential to an external service. In the context of a place lookup skill, the network call is expected, but it still represents a true external data transmission issue because potentially sensitive search terms and addresses leave the local environment and are not surfaced to the user with any caution or policy guardrails.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The script sends user-supplied location queries and address components directly to a third-party service without any explicit privacy notice, consent step, or warning at runtime. Because place searches may contain sensitive personal location data such as home addresses or points of interest, this creates a real data exposure risk even though the transmission appears intentional for the skill's functionality.

External Transmission

Medium
Category
Data Exfiltration
Content
-H "Content-Type: application/json" \
    -H "X-Client: claude-code-skill" \
    -d "$INPUT" \
    "https://api.getcamino.ai/search" | jq .
Confidence
88% confidence
Finding
The hardcoded external endpoint confirms that all lookups are sent to a remote Camino API rather than being processed locally. While this aligns with the stated skill purpose, it increases privacy and supply-chain exposure because sensitive location data depends on the security and trustworthiness of an external service.

Static analysis

No suspicious patterns detected.