T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned Third-Party Installation Commands Enable Supply-Chain Compromise
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a straightforward routing skill that calls Camino's API, with privacy and supply-chain cautions but no evidence of hidden or malicious behavior.
Install only from a source/version you trust, preferably a pinned release. Use this skill only for locations you are comfortable sending to Camino's API, because origin/destination coordinates, optional route details, your API key, and trial signup email data are transmitted to Camino-controlled endpoints.
SKILL.md:12Unpinned Third-Party Installation Commands Enable Supply-Chain Compromise
scripts/route.sh:35Unvalidated and Unencoded Input Permits Route Query Manipulation
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.
Add your key to Claude Code:
Add to your ~/.claude/settings.json:
{
The skill demonstrates shell-based installation and execution paths but does not declare an explicit tool scope such as permissions or allowed-tools. That increases the chance an agent may invoke shell capabilities more broadly than intended, reducing containment and making misuse or accidental execution of unsafe commands easier.
Using npx skills add https://github.com/barneyjm/camino-skills without a pinned version or immutable commit allows the fetched code to change over time. If the upstream package or repository is compromised, users may install malicious or altered skill content without noticing.
The command npx skills add https://github.com/barneyjm/camino-skills --skill route references remote code without pinning to a specific commit or version. This creates a supply-chain risk because future repository changes can silently alter what gets installed.
Invoking npx clawhub@latest install route uses the moving latest tag, which can resolve to different code over time. This exposes users to supply-chain attacks or unexpected behavior if a malicious or breaking version is published.
This skill is specifically designed to send precise origin/destination coordinates and optionally street-level imagery to an external API, but the description does not warn about that privacy sensitivity. In routing context, this omission is meaningful because location pairs can reveal home/work patterns, habits, or other sensitive movement data.
The trial signup command transmits a user email address to an external service to obtain an API key. While expected for service enrollment, it is still an external data transfer and should be treated as sensitive because users may not realize they are disclosing personal information to a third party.
Instant Trial (no signup required): Get a temporary API key with 25 calls:
curl -s -X POST -H "Content-Type: application/json" \
-d '{"email": "you@example.com"}' \
https://api.getcamino.ai/trial/start
The route request sends precise start and end coordinates plus an API key to an external API. In the context of a routing skill, this is expected functionality, but it remains privacy-sensitive because location data can directly identify residences, workplaces, or travel patterns if logged, intercepted, or mishandled by the third party.
curl -H "X-API-Key: $CAMINO_API_KEY" \
"https://api.getcamino.ai/route?start_lat=40.7128&start_lon=-74.0060&end_lat=40.7589&end_lon=-73.9851&mode=car"
The script performs an HTTP request to a third-party service using start/end coordinates derived from user input, which can reveal sensitive location data. While the file name and comments indicate routing behavior, the script itself provides no explicit warning or disclosure at the point of transmission about sending user location data off-system.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s -X GET \
-H "X-API-Key: $CAMINO_API_KEY" \
-H "X-Client: claude-code-skill" \
"https://api.getcamino.ai/route?${QUERY_STRING}" | jq .
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -s -X GET \
-H "X-API-Key: $CAMINO_API_KEY" \
-H "X-Client: claude-code-skill" \
"https://api.getcamino.ai/route?${QUERY_STRING}" | jq .