T09 · Insecure Skill Coding Practices
- Location
SKILL.md:61- Finding
Shell Command Injection Through Unvalidated Route and Date Parameters
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Alaska Airlines scraping skill does the advertised search work, but it also mandates automatic external delivery and uses unsafe shell/tmp-file patterns.
Install only if you are comfortable with flight-search details and booking links being sent through Telegram and potentially processed by external worker models. Prefer a version that returns results in the main conversation by default, asks before messaging a Telegram destination, validates airport/date inputs, and avoids executable code or predictable files in shared /tmp.
SKILL.md:61Shell Command Injection Through Unvalidated Route and Date Parameters
SKILL.md:61Predictable Shared Temporary Files Permit Symlink and Race Attacks
SKILL.md:33Mandatory External Delegation and Telegram Delivery Can Redirect Query Data
The operational instructions and mandatory output format are written to require Chinese-language responses such as '抓取失敗,請稍後再試' and the specified Telegram template, but the file does not offer the user any language/locale choice. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.
The skill is presented as a scraper, but it additionally instructs spawned sub-agents to immediately send results via Telegram to a caller-provided chat ID. That expands behavior from data retrieval into external transmission, creating an unintended exfiltration path and bypassing the normal primary interaction channel.
The skill directs immediate sending of query results to Telegram without any privacy notice, consent flow, or warning that user-requested travel data will be shared with a third-party channel. Even if the data seems low sensitivity, routing it externally can disclose user interests, itineraries, or identifiers such as chat IDs unnecessarily.
The sub-agent template explicitly instructs workers to transmit scraped results to a caller-provided Telegram chat immediately, establishing a natural-language disclosure channel outside the main interaction. Because the destination is externally supplied and transmission happens automatically, the pattern is dangerous even when the payload is only flight-search data.
The mandatory output section requires immediate Telegram delivery after every query, which is broader than the stated scraping purpose and couples retrieval with external dissemination. This design increases the chance that user queries, travel interests, or derived booking links are forwarded outside the expected conversation context without adequate review.
The required output format mandates immediate Telegram delivery of gathered results, encouraging automatic forwarding of user-requested data and generated booking URLs to an external recipient. This creates a built-in exfiltration mechanism and reduces opportunities for the main agent or user to review what is being sent before disclosure occurs.
No suspicious patterns detected.