T09 · Insecure Skill Coding Practices
- Location
SKILL.md:10- Finding
Excessive Declaration of Sensitive AI Provider Credentials
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to be a livestock assistant, but it asks for more AI-provider credentials and executable installation authority than its packaged files justify.
Install only if you are comfortable exposing AI-provider credentials to this skill environment, and prefer supplying only the single provider key you intend to use. Treat the package as incomplete unless the missing server files are supplied, and avoid running the unpinned ts-node install in a privileged environment.
SKILL.md:10Excessive Declaration of Sensitive AI Provider Credentials
SKILL.md:20Unpinned and Unnecessary Executable Node.js Dependency
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
DELETE /api/assistant/sessions/:sessionId
Response: 204 No Content
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
DELETE /api/animals/:id
Response: 204 No Content
The manifest says to use the skill for 'animal health, veterinary advice, breeds, reproduction, nutrition, forage, or any livestock-related topic,' which is a very broad natural-language trigger surface. It does not provide explicit boundaries or negative examples to distinguish when the skill should or should not activate, increasing the risk of accidental invocation from ordinary agricultural or animal-care conversations.
The documentation states the assistant 'Responds always in Spanish,' which imposes a language policy on all interactions. This is a natural-language policy concern because it does not offer the user a language preference or explain a justified region-specific limitation.
The file explicitly instructs that 'Every interaction should be in Spanish,' reinforcing a mandatory language restriction. Because no alternative language path or user choice is provided, this conflicts with the requirement to avoid forced locale/language behavior unless clearly justified and opted into.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Create a session before sending messages:
curl -X POST http://localhost:3000/api/assistant/sessions
# → { "sessionId": "...", "welcome": "¡Hola! Soy el Asistente de Ganadería..." }
curl -X POST http://localhost:3000/api/assistant/sessions/<sessionId>/messages \
This markdown file documents session deletion via DELETE and presents only the HTTP response, but it does not warn that the operation removes conversation history. For markdown files, user-affecting or destructive behavior should be disclosed so users understand privacy and data-loss implications before invoking the action.
The API reference documents DELETE /api/animals/:id without any accompanying caution that the animal record will be removed and may not be recoverable. In markdown documentation, destructive operations affecting user data should include an explicit warning about data loss or irreversibility.
The file presents core disease headings and treatment terminology in Spanish while the surrounding reference text is in English. This imposes a mixed-language experience without documenting a locale requirement or offering user opt-in, which can violate language/locale policy expectations.
The file is primarily written in English, but several table values switch to Spanish terms such as country names and abbreviations (for example, "Países Bajos", "Escocia", and "EE.UU."). Because the skill does not state that it is region-specific or give the user a language/locale option, this can violate the language/locale policy by implicitly forcing mixed-language output.
No suspicious patterns detected.