T09 · Insecure Skill Coding Practices
- Location
SKILL.md:67- Finding
API Credentials May Be Transmitted in URL Query Strings
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent Shipp API integration, but its docs include unsafe credential handling and an optional unpinned trading-bot setup that asks for multiple sensitive API keys.
Install only if you need Shipp API integration and are comfortable sending requests to Shipp. Prefer header-based API keys, do not put keys in URLs, treat the README key as unsafe placeholder text, and avoid running the Alph Bot example unless you first review or pin the repository and use limited test credentials in paper/demo mode.
SKILL.md:67API Credentials May Be Transmitted in URL Query Strings
README.md:67Unpinned External Repository Is Cloned and Executed with Sensitive Credentials
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
git clone https://gitlab.com/outsharp/shipp/alph-bot.git
cd alph-bot
cp .env.example .env
# Add your Shipp, Kalshi, and Anthropic API keys
yarn migrate
The README shows what appears to be a realistic Shipp API key value in an environment variable example. If this is a real or accidentally valid credential, it could be harvested from public documentation and used to access the Shipp account, consume credits, or retrieve data; even if not real, publishing live-looking secrets normalizes unsafe key-handling practices.
This markdown file documents running 'Alph Bot' with Shipp, Kalshi, and Anthropic API keys and shows a command that performs automated value betting. While it warns about real money outside demo mode, it does not clearly disclose privacy/system-impact behaviors such as sending data to third-party services and executing automated trading actions.
The allowed tools explicitly permit outbound curl requests to external Shipp domains, enabling transmission of user queries, API credentials, and retrieved data to a third-party network location. In this skill that behavior is expected, but without an explicit user-facing disclosure and data-minimization guidance it still represents a real external-transmission risk.
allowed-tools:
- Bash(curl:https://docs.shipp.ai/*)
- Bash(curl:https://api.shipp.ai/*)
- Bash(curl:https://platform.shipp.ai/*)
- Bash(jq:*)
The documented base API prefix directs all operational requests to an external Shipp API endpoint, meaning any request content and authentication material will leave the local environment. This is normal for an integration skill, but it is still security-relevant because the skill does not pair the instruction with a clear warning about third-party transmission and credential exposure risks.
Base prefix:
- All routes are under: `https://api.shipp.ai/api/v1`
---
The skill clearly instructs use of a third-party API and lists multiple authentication methods, but it does not warn users that their API key and any queried data will be transmitted to Shipp-operated external services. This creates a consent and data-handling transparency gap that can expose sensitive prompts, identifiers, or usage patterns to an external provider without an explicit user warning.