Pollinations Image Generator

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches its image-generation purpose, but its shell script can execute unintended commands from options or config files and can expose API keys.

Install only after the script is fixed to remove eval, parse config files safely, mask API keys, and correct the helper-file layout. If you use it, avoid sensitive prompt text and be aware that paid models may consume Pollinations credits.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

A crafted filename or option passed through the agent could run local shell commands instead of only downloading an image.

Why it was flagged

User-controlled values such as filename, dimensions, seed, and output directory are incorporated into a shell command string that is run with eval. Embedded quotes or shell metacharacters could break quoting and execute local commands.

Skill content
-f|--filename) shift; filename=$1 ;; ... output_path="$OUTPUT_DIR/$(basename "$filename")" ... curl_cmd="curl -sS -L -o \"$output_path\" --max-time 120" ... if ! eval "$curl_cmd"; then
Recommendation

Remove eval and call curl with directly quoted arguments; strictly validate numeric fields and seeds; restrict filenames to safe characters before use.

What this means

A file that appears to be simple configuration could execute commands in future sessions.

Why it was flagged

.user.conf is documented as a preference file, but the script sources it as shell code. If that persistent file is modified or poisoned, commands inside it run whenever the skill runs.

Skill content
USER_CONF="$SCRIPT_DIR/.user.conf"
[ -f "$USER_CONF" ] && . "$USER_CONF"
Recommendation

Parse .user.conf as key/value data instead of sourcing it, and validate allowed keys and values.

What this means

An unrelated project API key could be picked up, and a Pollinations API key could appear in the agent transcript or logs.

Why it was flagged

The skill loads .env files from the parent directory and current working directory, not just a clearly scoped skill-local file, and the config command prints the actual API key when set.

Skill content
load_env_file "$SCRIPT_DIR/../.env"
load_env_file "$PWD/.env"
API_KEY=${POLLINATIONS_API_KEY:-}
...
echo "API Key:       ${API_KEY:+✅ configured}${API_KEY:-❌ not set}"
Recommendation

Load only a clearly documented skill-local credential file or declared environment variable, and mask secrets in all output.

What this means

The skill may fail to run unless the files are rearranged correctly.

Why it was flagged

The script expects lib/models.sh, while the supplied file manifest provides models.sh at the root. This looks like a packaging/layout mismatch rather than malicious behavior.

Skill content
LIB_DIR="$SCRIPT_DIR/lib"

# Load model registry
. "$LIB_DIR/models.sh"
Recommendation

Package the helper at lib/models.sh or update generate.sh and SKILL.md to match the actual file layout.

What this means

Anything included in the prompt is shared with the external provider.

Why it was flagged

The skill sends the user’s prompt and generation settings to the Pollinations.ai image-generation endpoint, which is expected for this integration.

Skill content
BASE_URL="https://gen.pollinations.ai" ... api_url="${BASE_URL}/image/${encoded_prompt}?width=${width}&height=${height}&model=${model}"
Recommendation

Avoid putting private secrets or sensitive personal information in image prompts, and review the provider’s data handling policies.