T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:29- Finding
Unverified Remote Installer Downloaded and Executed Through a Shell
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent ad-image generator, but it recommends unsafe shell-based installation and command execution patterns that users should review before installing.
Install only if you are comfortable reviewing the uv installation path yourself and ensuring generated prompts and filenames are passed to the image script safely, preferably through argument arrays or robust escaping rather than a pasted shell command.
SKILL.md:29Unverified Remote Installer Downloaded and Executed Through a Shell
SKILL.md:143Shell Command Injection Risk Through Untrusted Prompt Interpolation
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Create the output directory:
mkdir -p /tmp/marketing/assets/images
The skill instructs users to install uv by piping a remote script directly into sh. This is dangerous because it executes network-fetched code without verification, so a compromised upstream server, MITM position, or substituted installer could lead to arbitrary code execution on the user's machine.
test -f ~/.codex/skills/nano-banana-pro/scripts/generate_image.py
If `uv` is missing: tell the user to install it with `curl -LsSf https://astral.sh/uv/install.sh | sh`.
If `GEMINI_API_KEY` is unset: tell the user to export it from Google AI Studio.
If the script is missing: tell the user the nano-banana-pro skill must be installed first.
The error-handling section repeats the same unsafe pattern of executing a remote installer script via curl piped to sh. Repetition increases the chance that users will follow the instruction, again exposing them to arbitrary code execution if the fetched content is malicious or tampered with.
| `Error loading input image:` | Verify the `--input-image` path exists; fix path and retry |
| `quota / 403 / permission` API error | Wrong key or quota exceeded; ask user to check Google AI Studio quota |
| Script not found at `~/.codex/skills/...` | nano-banana-pro skill is not installed; tell user to install it from ClawHub |
| `uv: command not found` | Run `curl -LsSf https://astral.sh/uv/install.sh | sh` then retry |
| Image generation returns blank/empty | Prompt may be too restrictive; remove avoid clauses and simplify to subject + style only |
---
No suspicious patterns detected.