T09 · Insecure Skill Coding Practices
- Location
SKILL.md:32- Finding
Shell Command Injection Through Unvalidated URL Interpolation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This career-search skill is mostly coherent, but it gives the agent Bash-based web request instructions with unsafe user-value interpolation and no clear trust boundary for external job-description content.
Install only if you are comfortable with a career assistant that can run Bash curl commands for job searches. Before use, avoid sharing unnecessary resume PII, verify job links and advice yourself, and treat fetched job descriptions as untrusted text. The publisher should replace shell interpolation with a structured HTTP client or explicit URL-encoding and add privacy and prompt-injection guardrails.
SKILL.md:32Shell Command Injection Through Unvalidated URL Interpolation
SKILL.md:66Indirect Prompt Injection Through Untrusted Job-Description HTML
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
curl -s "https://zerogtalent.com/api/jobs/search?employmentType=internship&remote=true&q=AI&limit=10"
### Output rules
Users read these results on mobile (Telegram, Slack, etc.) where long messages get truncated and lose formatting. To keep results scannable and consistent:
The skill description contains very broad trigger phrases such as jobs, careers, hiring, salary, and company mentions, which can cause the skill to activate for many ordinary conversations that may not require this workflow. Over-broad activation increases the chance the agent will unnecessarily invoke external search behavior or request sensitive career data like resumes in contexts where the user did not clearly ask for it.
The skill explicitly instructs the agent to read, critique, and tailor user resumes, which commonly contain personal data such as name, email, phone number, work history, education, and location, but it provides no privacy guardrails. Without data-minimization guidance, redaction prompts, or retention limits, the skill may encourage unnecessary collection and processing of sensitive personal information.
The API reference states that the job description is returned as HTML but does not warn that this content is untrusted and must not be rendered without sanitization. In a career assistant context, downstream tooling may display scraped job descriptions in chat, previews, or resume-tailoring workflows, creating a realistic path to stored or reflected XSS if HTML is injected into a web UI.
No suspicious patterns detected.