T09 · Insecure Skill Coding Practices
- Location
scripts/transcribe.sh:106- Finding
Incorrect curl End-of-Options Placement Can Expose the API Key and Break Requests
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill matches its Deepgram transcription purpose, but it should be reviewed because its API call is constructed incorrectly and may mishandle the Deepgram API key.
Review or fix the curl command before installing. Only use this skill for audio you are comfortable sending to Deepgram, use a narrowly scoped Deepgram key with billing limits where possible, and rotate the key if this script has already been run in an environment where command errors or proxy logs may have captured arguments.
scripts/transcribe.sh:106Incorrect curl End-of-Options Placement Can Expose the API Key and Break Requests
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
trap 'rm -f "$tmpfile"' EXIT
# Call API (-- prevents option injection from filenames starting with -)
http_code=$(curl -sS -w '%{http_code}' -o "$tmpfile" -- "$url" \
-H "Authorization: Token $DEEPGRAM_API_KEY" \
-H "Content-Type: ${mime}" \
--data-binary "@${in}")
The skill advertises shell-based execution via a script but does not declare any explicit tool scope such as permissions or allowed-tools. That creates an avoidable trust and policy gap: an agent may invoke shell capabilities without a clear least-privilege contract, increasing the chance of unintended command execution or broader filesystem/network access than reviewers expect.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
esac
# Build URL
url="https://api.deepgram.com/v1/listen?model=${model}&smart_format=true&punctuate=true"
if [[ -n "$language" ]]; then
url="${url}&language=${language}"
fi
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
esac
# Build URL
url="https://api.deepgram.com/v1/listen?model=${model}&smart_format=true&punctuate=true"
if [[ -n "$language" ]]; then
url="${url}&language=${language}"
fi
The script uploads the provided audio file to Deepgram via an HTTP request, which transmits potentially sensitive user data off the local system. While this behavior is inferable from the script's purpose, there is no explicit confirmation prompt or user-facing disclosure near execution that the audio content will be sent to a third-party service.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
trap 'rm -f "$tmpfile"' EXIT
# Call API (-- prevents option injection from filenames starting with -)
http_code=$(curl -sS -w '%{http_code}' -o "$tmpfile" -- "$url" \
-H "Authorization: Token $DEEPGRAM_API_KEY" \
-H "Content-Type: ${mime}" \
--data-binary "@${in}")