T09 · Insecure Skill Coding Practices
- Location
SKILL.md:40- Finding
Potential Disclosure of Sensitive User Data to a Third-Party API
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears to be a legitimate dashboard generator, but it can send prompts and uploaded datasets to an external SkillBoss API without clear privacy warnings for sensitive data.
Review this skill before installing if you may use real business, employee, customer, financial, log, or regulated data. Use only synthetic, anonymized, minimized, or approved data unless you are comfortable sending the prompt and included dataset content to SkillBoss's external API, and keep the API key in an environment variable or secret manager.
SKILL.md:40Potential Disclosure of Sensitive User Data to a Third-Party API
The manifest description lists a wide range of capabilities such as dashboards, apps, charts, data explorers, and games without defining narrow activation phrases or scope constraints. In a markdown/manifest context, this breadth can create ambiguous invocation conditions and increase the chance of unintended triggering from everyday requests about building apps or visualizations.
The skill explicitly instructs users to send prompts and potentially uploaded files or inline datasets to a third-party API, but it does not disclose that user data will leave the local environment. This creates a real data-handling and privacy risk because users may provide sensitive business, employee, financial, or log data without informed consent or minimization.
This finding identifies the same outbound request where the Authorization header and request body are sent to an external API endpoint. While using an API key in an HTTPS header is normal, the skill still transmits user-supplied content externally and does so without safety notices or data-classification guidance.
" For complex apps: plan the component structure first, then implement each section "
"with full interactivity, animations, and polished UX."
)
result = requests.post(
"https://api.heybossai.com/v1/pilot",
headers={
"Authorization": f"Bearer {SKILLBOSS_API_KEY}",
This finding identifies the same outbound request where the Authorization header and request body are sent to an external API endpoint. While using an API key in an HTTPS header is normal, the skill still transmits user-supplied content externally and does so without safety notices or data-classification guidance.
" For complex apps: plan the component structure first, then implement each section "
"with full interactivity, animations, and polished UX."
)
result = requests.post(
"https://api.heybossai.com/v1/pilot",
headers={
"Authorization": f"Bearer {SKILLBOSS_API_KEY}",
The hardcoded external domain confirms that generated dashboards and app requests are processed by a remote service outside the user's environment. This is materially risky in a dashboard-building skill because example use cases include employee data, financial metrics, logs, and surveys, all of which can be sensitive if transmitted without clear consent and controls.
"with full interactivity, animations, and polished UX."
)
result = requests.post(
"https://api.heybossai.com/v1/pilot",
headers={
"Authorization": f"Bearer {SKILLBOSS_API_KEY}",
"Content-Type": "application/json"
The skill requires an API key and shows how to export it, but provides no guidance on secure credential handling. This increases the chance of accidental exposure through hardcoding, logging, screenshots, shared shell history, or inclusion in generated artifacts and support messages.
No suspicious patterns detected.