Back to skill

Security audit

Sprite Animator

Security checks for vulnerabilities and agentic risk

Overview

The skill appears purpose-aligned, but it runs an unpinned external package that can change after review while using a Gemini API key and user images.

Review the `sprite-animator` package and consider pinning a known version or running it in an isolated environment. Do not use sensitive personal, confidential, or proprietary images unless you accept that they will be processed through Gemini and by the downloaded package.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:18
Finding

Unpinned Third-Party Package Retrieval and Execution

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 18–27
Vulnerability Type: Unpinned and unaudited runtime dependency execution
Risk Level: Medium

Vulnerable Code:

bash
## Quick Start

# Wave animation (default 16 frames)
uv run --with sprite-animator sprite-animator -i photo.png -o sprite.gif -a wave

# Bounce animation with larger sprites
uv run --with sprite-animator sprite-animator -i avatar.png -o bounce.gif -a bounce -s 256

# Keep the raw sprite sheet and individual frames
uv run --with sprite-animator sprite-animator -i pet.jpg -o dance.gif -a dance --keep-sheet --keep-frames

Technical Analysis

The documented commands instruct users to resolve and execute the third-party sprite-animator package through uv without specifying an exact version or cryptographic hashes. The audited project contains no implementation source, dependency lockfile, integrity metadata, or vendored package against which the executed behavior can be verified.

Consequently, the code executed by these commands may change after the Skill has been reviewed. A compromised package publisher account, malicious future release, or package-registry supply-chain incident could introduce arbitrary installation-time or runtime behavior. The package process may inherit the user's environment, including the required GEMINI_API_KEY, and receive access to the input images and output paths supplied on the command line.

This finding establishes an insecure dependency boundary; it does not establish that the current external package is malicious.

Attack Path

  1. An attacker compromises the package publisher, package registry, or a future release of the unpinned sprite-animator dependency.
  2. The attacker publishes a modified package containing malicious installation or entry-point code.
  3. A user follows one of the documented uv run --with sprite-animator commands.
  4. uv resolves and retrieves the packa ...[truncated 970 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin sprite-animator to an exact, reviewed version rather than allowing unconstrained resolution.
  2. Maintain a committed lockfile containing exact transitive dependency versions and cryptographic hashes.
  3. Configure uv to retrieve packages only from an explicitly trusted registry and require integrity verification where supported.
  4. Review the package source, build configuration, installation hooks, entry point, and transitive dependencies before approving upgrades.
  5. Prefer bundling auditable implementation source with the Skill when practical so reviewed behavior cannot change independently.
  6. Run the dependency with least privilege in an isolated environment. Expose only the necessary input and output paths and restrict unnecessary network and filesystem access.
  7. Provide GEMINI_API_KEY only to the process that requires it, use a narrowly scoped credential where supported, and rotate the credential if dependency compromise is suspected.
  8. Adopt an explicit dependency-update process in which version and hash changes require security review before deployment.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly states that it sends the user's source image to Gemini in a single request, but the description and usage guidance do not clearly warn users that their uploaded images are transmitted to an external AI service. This creates a privacy and data-handling risk because users may provide sensitive personal photos or proprietary images without informed consent.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.