Back to skill

Security audit

Relationship

Security checks for vulnerabilities and agentic risk

Overview

This skill is purpose-aligned, but users should notice that it sends exact coordinates to Camino's API and its install examples are not version-pinned.

Install only if you are comfortable sending the exact start and end coordinates you provide to api.getcamino.ai with a Camino API key. Avoid sensitive home, workplace, medical, or regulated-location data unless you understand Camino's data handling. Prefer a pinned version or commit instead of the mutable install examples, and install only the specific skill you need.

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:13
Finding
Unpinned Remote Installation Dependencies## Vulnerability Details **File Location**: `SKILL.md`, lines 13–25 **Vulnerability Type**: Supply-chain exposure through mutable remote dependencies **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-relationship ``` ```bash npx clawhub@latest install camino-relationship # or: pnpm dlx clawhub@latest install camino-relationship # or: bunx clawhub@latest install camino-relationship ``` ### Technical Analysis The documented installation commands retrieve packages or Skill content from mutable upstream references. The GitHub commands do not specify a reviewed commit or immutable release, while the package-runner commands explicitly request `@latest`. No checksum, signature, lockfile, or other integrity-verification mechanism is documented. Consequently, the content installed by users can differ from the content reviewed during this audit. This is an insecure dependency practice rather than evidence that the currently audited script contains an embedded malicious payload. ### Attack Path 1. An attacker compromises the upstream repository, registry package, maintainer account, release process, or another relevant supply-chain component. 2. The attacker publishes malicious content to the repository's mutable default reference or to the package version selected by `@latest`. 3. A user follows the installation instructions in `SKILL.md`. 4. `npx`, `pnpm dlx`, or `bunx` retrieves the changed package, or the installer retrieves changed Skill content from GitHub. 5. Depending on the upstream package's installation and execution behavior, attacker-controlled code or Skill instructions are executed or installed in the user's environment. ### Impact Assessment The potential impact is determined by the privileges of the user run ...[truncated 720 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with an explicitly reviewed package version. 2. Pin the GitHub dependency to an immutable commit hash or signed release tag rather than the repository's mutable default reference. 3. Publish expected checksums or cryptographic signatures and verify them before installation. 4. Use package-manager lockfiles and integrity metadata where supported. 5. Install only the required Skill instead of the complete collection unless all included Skills have been independently reviewed. 6. Document the expected publisher, version, commit, and integrity value so users can verify provenance. 7. Run installation with the minimum necessary privileges in an isolated environment, and review package lifecycle scripts before execution.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The skill is described as if it performs local spatial calculations, but the content shows it actually sends user-supplied coordinates to a remote authenticated API. This mismatch is dangerous because users may disclose precise location data believing computation is local, while the skill depends on third-party network access and an API key.

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 relies on shell execution (`curl`, `jq`, and `./scripts/relationship.sh`) but does not declare any tool scope or allowed-tools restriction. That leaves the skill with undocumented execution capability, making it harder for users and reviewers to understand or constrain what commands may run.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
Using `npx skills add https://github.com/barneyjm/camino-skills` without a pinned version or commit causes installation to fetch whatever code is current at execution time. If the upstream package or repository is changed, compromised, or hijacked, users may install unreviewed code with different behavior than the analyzed skill.

Rp1

Medium
Category
MCP Rug Pull
Confidence
88% confidence
Finding
This installation path also references `npx skills` without pinning an immutable version of the fetched repository state. That creates supply-chain risk because the installed content can drift over time or be replaced after review.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding
`npx clawhub@latest install camino-relationship` explicitly tracks the latest version, which can change at any time and may introduce malicious or unsafe behavior after publication. Running latest-tagged install commands is a classic supply-chain weakness because it bypasses reproducibility and review stability.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill documentation indicates precise latitude/longitude pairs are transmitted to a third-party service, but it does not provide a user-facing privacy warning or consent guidance. Exact coordinates can reveal homes, workplaces, routines, or sensitive destinations, so omission of a privacy notice increases the risk of inadvertent sensitive-data disclosure.

External Transmission

Medium
Category
Data Exfiltration
Content
}'
```

### Via curl

```bash
curl -X POST -H "X-API-Key: $CAMINO_API_KEY" \
Confidence
95% confidence
Finding
The documented `curl` usage sends user-provided coordinate data and an authentication header to an external service. External transmission is expected for this skill, but it is still a real security concern because it moves potentially sensitive location data and a secret-bearing request off the local system to a third party.

External Transmission

Medium
Category
Data Exfiltration
Content
curl -X POST -H "X-API-Key: $CAMINO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start": {"lat": 40.7128, "lon": -74.0060}, "end": {"lat": 40.7589, "lon": -73.9851}}' \
  "https://api.getcamino.ai/relationship"
```

## Parameters
Confidence
95% confidence
Finding
The hardcoded remote endpoint `https://api.getcamino.ai/relationship` confirms that the skill transmits precise start/end locations to a third-party API. In the context of a location-intelligence skill, that behavior is functionally intended, but it still has meaningful privacy and data-governance implications if users are not clearly warned.

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
93% confidence
Finding
The script sends user-supplied location data and an API key to an external service via curl. This is a real data egress point: even if expected by the skill's purpose, it transmits potentially sensitive geolocation information off-host to a third party, which can create privacy, compliance, and secret-handling risk if users do not explicitly consent.

External Transmission

Medium
Category
Data Exfiltration
Content
-H "Content-Type: application/json" \
    -H "X-Client: claude-code-skill" \
    -d "$INPUT" \
    "https://api.getcamino.ai/relationship" | jq .
Confidence
90% confidence
Finding
The hardcoded external endpoint confirms that all input coordinates are sent to a remote Camino API. In the context of a relationship/distance skill this is functionally intended, but it still constitutes external transmission of sensitive location data to a third-party domain and therefore remains a genuine security/privacy concern rather than a false positive.

Static analysis

No suspicious patterns detected.