T09 · Insecure Skill Coding Practices
- Location
scripts/upload_easyimage.py:124- Finding
Arbitrary Readable Local Files Can Be Uploaded Without Image Validation
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a straightforward EasyImages uploader, but it needs review because the helper can upload any readable local file and can send the token and file over plaintext HTTP if configured that way.
Review before installing. Use only a trusted HTTPS EasyImages server, treat EASYIMAGE_TOKEN and delete URLs as secrets, and confirm the exact local image path before each upload. Do not use this skill for sensitive files unless you are comfortable sending them to that server.
scripts/upload_easyimage.py:124Arbitrary Readable Local Files Can Be Uploaded Without Image Validation
scripts/upload_easyimage.py:77API Token and Uploaded Content May Be Transmitted Over Plaintext HTTP
scripts/upload_easyimage.py:136Unbounded Request and Response Buffering Can Exhaust Process Memory
Referenced artifact was not completely inspected
- relative paths are resolved relative to this `SKILL.md` / skill root directory
The skill instructs use of file reads, environment-variable access, and outbound network uploads, but it does not declare any explicit tool scope or permission boundaries in the manifest. That creates an authorization ambiguity: an agent may invoke this skill in broader contexts than intended, including reading local files and sending them to a remote server without clear, machine-readable limits.
The invocation text includes general phrases like 'upload an image' and 'host a picture' without clear scope constraints or exclusion conditions. Because the file does not provide negative examples or a narrower activation context, the skill could be selected for ordinary image-related requests beyond the intended EasyImages/local-file workflow.
The documentation instructs operators to provide a server URL and upload token before sending local image files to an external EasyImages service, but it does not warn about the privacy implications of exfiltrating local content or the need to protect the token as a credential. In a skill explicitly designed to upload local files, this omission can cause users or integrators to unknowingly transmit sensitive images or mishandle secrets, increasing the chance of data leakage or unauthorized uploads.
This code reads a local image file, includes an API token, and sends both to a remote server via HTTP POST. While the CLI description says it uploads an image, the script provides no runtime confirmation, user-facing notice, or inline warning about transmitting local file contents and credentials to an external endpoint.
No suspicious patterns detected.