T09 · Insecure Skill Coding Practices
- Location
scripts/fetch_metrics.sh:34- Finding
Access Token and Customer Data Exposed Through Process Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Gumroad analytics skill is mostly purpose-aligned, but it handles access tokens and sales data in ways that can expose sensitive information locally.
Review this before installing if you handle real Gumroad customer data. The skill appears aimed at legitimate analytics and does not show malicious exfiltration, but it should be hardened to avoid putting tokens or API payloads in command-line arguments, set restrictive permissions on output directories/files, and use an allowlist for any raw diagnostic exports.
scripts/fetch_metrics.sh:34Access Token and Customer Data Exposed Through Process Arguments
scripts/fetch_metrics.sh:68Optional Raw Sales Storage Uses Incomplete Redaction and Non-Explicit File Permissions
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
STORE_RAW=1
fi
CRED_FILE="${GUMROAD_CREDENTIALS_FILE:-$HOME/.config/gumroad/credentials.json}"
if [[ ! -f "$CRED_FILE" ]]; then
echo "Credentials file not found: $CRED_FILE" >&2
exit 1
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
STORE_RAW=1
fi
CRED_FILE="${GUMROAD_CREDENTIALS_FILE:-$HOME/.config/gumroad/credentials.json}"
if [[ ! -f "$CRED_FILE" ]]; then
echo "Credentials file not found: $CRED_FILE" >&2
exit 1
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
STORE_RAW=1
fi
CRED_FILE="${GUMROAD_CREDENTIALS_FILE:-$HOME/.config/gumroad/credentials.json}"
if [[ ! -f "$CRED_FILE" ]]; then
echo "Credentials file not found: $CRED_FILE" >&2
exit 1
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
STORE_RAW=1
fi
CRED_FILE="${GUMROAD_CREDENTIALS_FILE:-$HOME/.config/gumroad/credentials.json}"
if [[ ! -f "$CRED_FILE" ]]; then
echo "Credentials file not found: $CRED_FILE" >&2
exit 1
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
)"
if [[ -z "$TOKEN" ]]; then
echo "No access token found in $CRED_FILE (expected access_token or token)" >&2
exit 1
fi
The skill declares shell, file read, and file write capabilities but does not scope or constrain them with an explicit permissions or allowed-tools policy. In an agent environment, this increases the attack surface because the agent may execute broader file or shell operations than necessary, including access to credential files and persistence into memory paths.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Harden permissions:
chmod 600 ~/.config/gumroad/credentials.json
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
exit 1
fi
API="https://api.gumroad.com/v2"
TODAY="$(date +%F)"
OUT_DIR="memory/metrics/gumroad"
mkdir -p "$OUT_DIR"
No suspicious patterns detected.