Horse Sticker Maker

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: horse-sticker-maker Version: 1.0.0 The skill bundle is designed to create AI-generated blessings and GIF stickers. It is classified as 'suspicious' due to the potential for prompt injection against the underlying Large Language Models (Google Gemini/Imagen) in `assets/horse-blessing-template/app/api/generate/route.ts` and `assets/horse-blessing-template/app/api/sticker/route.ts`. User input is directly embedded into the prompts, which could allow a sophisticated attacker to manipulate the LLM's output beyond the intended scope. While this is a vulnerability in LLM interaction, there is no clear evidence of intentional malicious behavior by the skill developer, such as data exfiltration, persistence, or unauthorized system access. The use of environment variables for API keys and loading `gif.js` from a CDN are standard practices and not inherently malicious within this context.

Findings (0)

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 user may deploy the app without realizing it needs provider API keys that can incur quota or billing usage.

Why it was flagged

The code requires a server-side Google API key, while the registry metadata says there are no required env vars or primary credentials. This under-discloses credential requirements and scope.

Skill content
const API_KEY = process.env.GOOGLE_API_KEY!
const BASE = process.env.GOOGLE_API_BASE || 'https://aiplatform.googleapis.com/v1/publishers/google/models'
Recommendation

Declare the required API keys, document the needed scopes and billing impact, and tell users how to restrict keys to the intended Google/Gemini APIs.

What this means

If deployed publicly, visitors or bots could repeatedly call the endpoint and consume the deployer's API quota or generate costs.

Why it was flagged

The route accepts public POST input and triggers provider image generation using the server API key. The provided route code shows input length checks, but no authentication, rate limiting, quota control, or abuse protection.

Skill content
export async function POST(req: NextRequest) {
  ...
  const imageDataUrl = await geminiGenerateImage(prompt)

  return NextResponse.json({ image: imageDataUrl })
Recommendation

Add authentication, rate limiting, quotas, and abuse monitoring before production deployment, or keep the app private.

What this means

Names or blessing text entered into the app may be sent to Google/Gemini for generation.

Why it was flagged

User-provided names are incorporated into prompts sent to an external AI provider. This is purpose-aligned, but users should know their input leaves the app server.

Skill content
const { name } = await req.json()
...
const textRaw = await geminiGenerate(textPrompt)
Recommendation

Disclose the external AI data flow in the app UI and privacy notes, and advise users not to enter sensitive personal information.

What this means

Users' browsers depend on the CDN-served script behaving as expected.

Why it was flagged

The client loads third-party JavaScript from a CDN at runtime. This is purpose-aligned for GIF generation, but no subresource integrity or local vendoring is shown.

Skill content
src="https://cdn.jsdelivr.net/npm/gif.js@0.2.0/dist/gif.js"
Recommendation

Vendor the script locally or add integrity checking where possible, and review npm dependencies before deployment.