T09 · Insecure Skill Coding Practices
- Location
scripts/generate_image.py:57- Finding
API Credential Exposure Through Command-Line Arguments
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims, but it prominently encourages passing a paid API key on the command line, which can expose the credential in logs or shell history.
Review before installing. Use a dedicated, least-privileged Volcengine key, prefer VOLC_API_KEY or a managed secret store instead of --api-key, avoid sending private images as base64 unless intended, and be aware requests go to Volcengine's cn-beijing endpoint.
scripts/generate_image.py:57API Credential Exposure Through Command-Line Arguments
scripts/generate_image.py:2Mutable Runtime Dependency Without Exact Version or Integrity Pinning
The skill invokes a Python script that uses both network access and sensitive configuration input (--api-key or VOLC_API_KEY), but the manifest does not declare any tool scope such as permissions or allowed-tools. This weakens least-privilege controls and makes it harder for the host to constrain or review what external access the skill actually requires, increasing the risk of unintended network use or secret exposure if the script is modified or abused.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
payload["sequential_image_generation"] = "disabled"
try:
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
result = response.json()
The code sends all requests to a cn-beijing endpoint, which imposes a specific regional routing choice in the skill's behavior. Under the language/locale policy category, region or locale constraints should be documented or user-selectable unless clearly justified.
No suspicious patterns detected.