T09 · Insecure Skill Coding Practices
- Location
SKILL.md:150- Finding
Permanent Public Exposure of Uploaded Local Images
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is mostly coherent for Flyelep image generation, but local images may be uploaded to permanent public URLs without a clear consent or deletion flow.
Review before installing. Use this skill only with images you are comfortable sending to Flyelep and potentially exposing through permanent public URLs. Avoid confidential, personal, regulated, unreleased, or proprietary images unless the user explicitly accepts that transfer and storage model. Provide the API key only at runtime and do not store it persistently.
SKILL.md:150Permanent Public Exposure of Uploaded Local Images
The activation text says to use this skill whenever the user asks to recreate a popular image or imitate a reference image's style, but it does not define boundaries or exclusions. This is broad enough to capture many ordinary image-generation or editing requests and lacks negative examples clarifying when the skill should not activate.
The skill includes a file-upload procedure that sends user-supplied local files to a third-party service and even allows direct use of the upload endpoint when another upload skill is absent. This expands the skill from image generation into generalized external file transfer, increasing the chance of unintended data exfiltration if users provide sensitive local paths or if the agent over-applies the workflow.
The skill instructs uploading local user files and transmitting them to external Flyelep endpoints, but it does not require a clear user-facing warning or consent flow about third-party data transfer, persistence, or privacy implications. Because the uploaded URLs are described as permanent and public-facing, the privacy risk is materially higher than a transient internal processing step.
The manifest says this skill is for generating product replica images via the Flyelep API, but the file also instructs invoking local shell commands (curl, rm) and handling local filesystem paths as part of execution. Spawning shell-style workflows and manipulating temporary local files are not justified by the narrowly stated purpose of an image-generation skill itself.
This is a real external transmission path: a local file is posted to a third-party endpoint using a user-provided secret key. In context, the transmission is part of the feature, but it still carries security and privacy risk because local content leaves the host boundary and the resulting URL is documented as externally accessible and permanent.
判断成功只看 code,业务失败时 HTTP 状态码仍是 200,code 为 500 或 9999,原因在 msg 里。
# Windows/PowerShell(用 curl.exe,PowerShell 里的 curl 是 Invoke-WebRequest 的别名)
curl.exe -X POST "https://www.flyelep.cn/prod-api/poster-design/api/v1/file/upload" -H "secretKey: 你的密钥" --max-time 120 -F "file=@C:/path/to/product.png"
# macOS/Linux