T09 · Insecure Skill Coding Practices
- Location
scripts/gamma.sh:129- Finding
Arbitrary Python Code Execution Through Generate Command Argument Interpolation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Gamma skill is mostly purpose-aligned, but its shell script can turn crafted presentation text into local Python code execution before sending the API request.
Install only if you are comfortable giving the skill a Gamma API key and sending deck or document content to Gamma. Do not use it with untrusted or confidential prompt text until the script is fixed to pass values to Python as data rather than interpolating them into executable Python source.
scripts/gamma.sh:129Arbitrary Python Code Execution Through Generate Command Argument Interpolation
scripts/gamma.sh:217Arbitrary Python Code Execution Through Template Command Argument Interpolation
Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.
api() {
local method="$1" endpoint="$2"
shift 2
curl -sf -X "$method" "${API_BASE}${endpoint}" \
-H "X-API-KEY: ${GAMMA_API_KEY}" \
-H "Content-Type: application/json" \
-H "accept: application/json" \
The skill documents executable shell usage (bash scripts/gamma.sh, curl, python3) but does not declare any explicit tool scope or permissions boundary. That increases the chance the agent can invoke shell capabilities implicitly, making review and enforcement weaker and enabling unintended command execution paths if the skill is triggered or extended unsafely.
The trigger list includes broad phrases like 'slides', 'gamma', and 'create a presentation', which are common in normal conversation and can cause unintended invocation. In a skill that performs networked API actions and may consume credits or create externally shared content, accidental activation is more dangerous than in a read-only skill.
The script sends user-provided inputText and related prompt fields directly to Gamma's external API, but provides no explicit notice, consent gate, or redaction step before transmission. In an agent-skill context, users may supply sensitive business, personal, or proprietary content assuming local processing, so silent exfiltration to a third-party SaaS is a real privacy and compliance risk.
The template command transmits the user prompt and template-related metadata to Gamma's external API without an explicit warning that the content leaves the local environment. Because this skill is specifically for creating presentations/documents from user text, it is reasonably likely to handle confidential drafts, internal strategy, or customer information, making undisclosed external sharing risky.
No suspicious patterns detected.