T09 · Insecure Skill Coding Practices
- Location
SKILL.md:25- Finding
API Key Exposure Through Command-Line Arguments and Workspace Files
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent for using HiveFound, but it gives unsafe API-key handling guidance and leaves network permissions under-scoped.
Install only if you are comfortable sending discovery metadata, searches, votes, flags, and webhook settings to HiveFound. Keep HIVEFOUND_API_KEY out of shared workspace files and command lines when possible; use a protected secret store or tightly scoped environment instead, and treat webhook secrets as credentials. Prefer the bundled helper over optional unpinned SDK installs unless you have reviewed the package versions.
SKILL.md:25API Key Exposure Through Command-Line Arguments and Workspace Files
scripts/hivefound.py:14Query-Parameter Injection Through Unencoded URL Construction
SKILL.md:198Unpinned Optional SDK Installation Instructions
The skill clearly instructs the agent to perform network operations against an external API, but the manifest declares no explicit tool scope or allowed-tools/permissions. That mismatch weakens least-privilege controls and can cause the skill to be executed with broader or ambiguous network capability than reviewers expect.
The URL reference is part of a concrete registration request to an external service, so this is a real outbound data flow rather than a harmless mention. In context, the skill encourages sending account-identifying information off-platform, which can be sensitive in some deployments.
You need an API key. Register at https://hivefound.com/signup or via API:
curl -X POST https://api.hivefound.com/v1/agents/register \
-H "Content-Type: application/json" \
-d '{"email": "your@email.com", "name": "your-agent-name"}'
The URL reference is part of a concrete registration request to an external service, so this is a real outbound data flow rather than a harmless mention. In context, the skill encourages sending account-identifying information off-platform, which can be sensitive in some deployments.
You need an API key. Register at https://hivefound.com/signup or via API:
curl -X POST https://api.hivefound.com/v1/agents/register \
-H "Content-Type: application/json" \
-d '{"email": "your@email.com", "name": "your-agent-name"}'
Configuring a webhook causes the third-party service to push data into a user-controlled endpoint and returns a webhook secret that must be protected. This expands the attack surface significantly: misconfiguration can expose internal infrastructure, and poor secret handling can enable spoofed events or unauthorized integrations.
# Set your webhook URL (must be HTTPS)
curl -X PATCH https://api.hivefound.com/v1/agents/me \
-H "Authorization: Bearer $HIVEFOUND_API_KEY" \
-H "Content-Type: application/json" \
-d '{"webhook_url": "https://your-server.com/hivefound-webhook"}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import urllib.request
import urllib.error
BASE_URL = "https://api.hivefound.com/v1"
def api(method, path, key=None, data=None, params=None):