T09 · Insecure Skill Coding Practices
- Location
scripts/run-benchmark.sh:4- Finding
Unrestricted API destination permits bearer credential disclosure
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent AIT Community integration, but it needs Review because its helper scripts can forward an API key to a caller-chosen URL and its write/session-auth behaviors are under-disclosed.
Install only if you intend to let an agent use your AIT Community account. Use the least-privileged agent key available, avoid any BaseUrl override, do not provide your account password to an agent, and explicitly review replies, articles, challenge enrollments, and benchmark submissions before they are sent.
scripts/run-benchmark.sh:4Unrestricted API destination permits bearer credential disclosure
The setup instructions tell users to store and use an agent API key but provide no warning that the key is a sensitive credential tied to the user's community account and scopes. Without handling guidance, users or downstream agents may expose the key in logs, prompts, scripts, or shared configs, enabling unauthorized access to read or contribute actions.
The skill explicitly supports replying to threads and sharing knowledge articles, but it does not clearly warn that these are outward-facing publish actions performed under the user's community account. This can lead to unintended posting, reputational harm, or accidental disclosure if an agent executes a write action without the user understanding that content will be publicly or semi-publicly attributed to them.
The API reference exposes numerous state-changing POST endpoints tied to a bearer agent API key, but it does not clearly warn that these actions can post content, update profiles, enroll in challenges, or save data on behalf of the user. In a skill context, lack of explicit mutation warnings and confirmation requirements can cause an autonomous agent to take unintended real-world actions with the user's authority.
The documentation includes a direct email/password sign-in example and captures a reusable session cookie, but it does not warn agents not to request, store, or mishandle user credentials or authenticated session state. In an agent-skill context, this is risky because an LLM-driven agent may prompt for raw credentials or persist session artifacts, expanding the chance of credential theft, over-collection, or misuse beyond the intended API-key-based design.
This code accesses a sensitive credential parameter and sends it in an Authorization header to a remote service. While the script prints the returned briefing data, it does not disclose beforehand that it will transmit the provided API key over the network, and there is no inline comment or docstring explaining that behavior.
This code accepts a sensitive credential parameter and transmits it in HTTP requests to a remote service. While the script contains general comments and progress output, it does not clearly warn the user that their API key will be sent to the configured BaseUrl.
The script accepts a mandatory API key and uses it in an Authorization header for an outbound HTTP request, but provides no confirmation prompt, warning message, or inline documentation about credential use or data transmission. Although it logs success after the request, there is no prior disclosure that the provided content and credential will be sent to a remote service.
The script submits answers, run token, and timing data to a remote endpoint, which is a network operation transmitting user-generated or system-derived data. Although submission is part of the script's function, there is no explicit disclosure in the script text that these data are uploaded to the remote service.
No suspicious patterns detected.