Back to skill

Security audit

Fitness Finder

Security checks for vulnerabilities and agentic risk

Overview

The skill appears to perform its stated fitness-location search function, but users should understand it sends search/location data to Camino AI and relies on a Camino API key.

Install only if you are comfortable sending fitness-search queries, coordinates, and trial signup email data to Camino AI. Prefer a reviewed or pinned install source when available, use a Camino-specific API key with limited value, and be careful storing it in shared Claude Code settings where other sessions or skills may access it.

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:10
Finding
Unpinned Third-Party Installation Commands Permit Supply-Chain Compromise<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 10–21 **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium ### Vulnerable Code ```bash **Companion Skills**: This is part of the Camino AI location intelligence suite. Install all available skills (query, places, relationship, context, route, journey, real-estate, hotel-finder, ev-charger, school-finder, parking-finder, fitness-finder, safety-checker, travel-planner) for comprehensive coverage. ```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 fitness-finder ``` **Via clawhub:** ```bash npx clawhub@latest install fitness-finder # or: pnpm dlx clawhub@latest install fitness-finder # or: bunx clawhub@latest install fitness-finder ``` ``` ### Technical Analysis The documented installation commands execute third-party package-runner code and retrieve Skill content from mutable upstream sources. The `clawhub@latest` reference explicitly selects whichever package release is current at installation time, while the GitHub URL does not specify a reviewed commit SHA or immutable release artifact. No lockfile, integrity hash, signature verification, or fixed package version is provided. Consequently, the code installed or executed by a user may differ from the version that was security-reviewed. If an npm publisher account, package, GitHub account, repository, release process, or other upstream distribution component is compromised, an attacker could replace the expected content with malicious code. This finding concerns unsafe dependency installation guidance. The audited files themselves contain no evidence that the current upstream packages are malicious. ### Attack Path 1. An attacker compromises an upstream package publisher, distribution account, repository, or release process associated with the documented ...[truncated 1321 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace `clawhub@latest` with an explicitly reviewed package version. 2. Pin the GitHub dependency to an immutable full commit SHA rather than the repository's mutable default branch. 3. Record and verify cryptographic integrity hashes for downloaded release artifacts where the package manager supports them. 4. Prefer signed releases and document how users can verify the publisher identity and artifact signature. 5. Commit an appropriate lockfile when dependencies are installed as part of a managed project. 6. Review package lifecycle scripts and the complete transitive dependency tree before approving a new version. 7. Use an automated dependency-update process that opens reviewable changes rather than resolving the newest release during installation. 8. Run installation in a least-privileged or isolated environment without unrelated credentials. 9. Update the examples to use commands conceptually equivalent to: ```bash npx clawhub@<reviewed-version> install fitness-finder npx skills add https://github.com/barneyjm/camino-skills#<full-reviewed-commit-sha> --skill fitness-finder ``` The placeholders must be replaced with versions and commit identifiers that have actually been reviewed and approved. ]]>
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
The skill instructs users to place an API key in `~/.claude/settings.json`, which is a sensitive agent configuration location. Modifying this file can broaden secret exposure to other skills or processes using the same environment, and normalizing edits to the agent config increases the chance of unsafe secret handling.

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill documents shell-based execution paths (`./scripts/...`, `curl`, `npx`) but does not declare any `permissions` or `allowed-tools` scope. In an agent ecosystem, missing tool scoping weakens least-privilege controls and can allow broader shell use than the user expects when invoking the skill.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
Using `npx skills add https://github.com/barneyjm/camino-skills` without pinning a version or immutable commit exposes users to supply-chain risk if the package, installer behavior, or referenced repository changes. A future malicious or compromised update could cause different code to be installed than what was reviewed.

Rp1

Medium
Category
MCP Rug Pull
Confidence
95% confidence
Finding
The skill-specific install command still references an unpinned remote source via `npx skills add ... --skill fitness-finder`, so the fetched code can change over time. This creates a supply-chain exposure where later repository modifications may introduce malicious behavior under the same install instructions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
`npx clawhub@latest install fitness-finder` explicitly tracks the latest version, which is unsafe for security-sensitive installation flows. If the package or its distribution channel is compromised, users may execute newly introduced code immediately without review.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The documentation instructs users to send their email address to a third-party API to obtain a trial key but provides no privacy notice, consent guidance, or explanation of data handling. This is risky because users may disclose personal data without understanding retention, sharing, or marketing implications.

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
91% confidence
Finding
The documented `curl` command transmits a user email address to an external service. Even though this appears functional rather than malicious, it is still an external data exfiltration path from the local environment to a third party and should be clearly disclosed.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
curl -H "X-API-Key: $CAMINO_API_KEY" \
  "https://api.getcamino.ai/query?query=gyms+yoga+studios+fitness+centers&lat=40.7589&lon=-73.9851&radius=1500&rank=true"
```

## Parameters
Confidence
90% confidence
Finding
The example query sends location data and an API key to a third-party endpoint. In a location-intelligence skill this is expected behavior, but coordinates and search intent can still be sensitive, so the transmission should be explicit and bounded because misuse could reveal a user's whereabouts or patterns.

External Transmission

Medium
Category
Data Exfiltration
Content
curl -s -X GET \
    -H "X-API-Key: $CAMINO_API_KEY" \
    -H "X-Client: claude-code-skill" \
    "https://api.getcamino.ai/query?${QUERY_STRING}" | 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
curl -s -X GET \
    -H "X-API-Key: $CAMINO_API_KEY" \
    -H "X-Client: claude-code-skill" \
    "https://api.getcamino.ai/query?${QUERY_STRING}" | 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.