Back to skill

Security audit

Avatar Generator

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local avatar generator with no hidden network, credential, persistence, or destructive behavior, though its dependency documentation needs tightening.

Install in an isolated environment, pin Pillow and add or remove NumPy before relying on gradient avatars, and specify the output directory/platforms so the skill only writes the avatar files you intend.

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:7
Finding

Unpinned and Incomplete Third-Party Dependency Declaration

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:7 and SKILL.md:148
Vulnerability Type: Unpinned and undeclared third-party dependencies
Risk Level: Medium

Vulnerable Code

SKILL.md:7:

yaml
dependencies: "pip install pillow"

SKILL.md:146-150:

python
def create_gradient_avatar(self, color1, color2, size=(400, 400)):
    """Style 3: Gradient avatar"""
    import numpy as np
    
    img = np.zeros((size[1], size[0], 3), dtype=np.uint8)

Technical Analysis

The installation metadata instructs users or agents to execute pip install pillow without constraining the dependency to a reviewed version or verifying its package hash. Consequently, the installed code may vary over time. If an upstream release, distribution account, package index, or dependency-resolution path is compromised, malicious package installation or build logic could execute under the privileges of the account performing the installation.

The implementation also imports NumPy at runtime, but NumPy is absent from the declared dependencies. This produces a non-reproducible and incomplete environment. Gradient generation will fail when NumPy is unavailable, while users or automation may attempt an unreviewed, ad hoc installation to resolve the error, extending the supply-chain exposure.

There is no evidence that Pillow or NumPy is currently malicious, and the project does not use a typosquatted package name or an explicitly unsafe package source. The risk arises from unconstrained dependency resolution and incomplete dependency declaration.

Attack Path

  1. A user or agent installs the Skill and follows the dependency instruction in SKILL.md.
  2. pip resolves the latest available Pillow package rather than a reviewed, reproducible version.
  3. An attacker who has compromised an applicable package release, package index, maintainer account, or dependency path supplies malicious installation or runtime ...[truncated 1063 chars]
Remediation
View remediation

Remediation Suggestions

  1. Replace the inline installation command with a dependency manifest containing exact, reviewed versions for both Pillow and NumPy.
  2. Generate and enforce cryptographic hashes, for example by using a hash-locked requirements file and installing with pip install --require-hashes -r requirements.txt.
  3. Configure installation to use an explicitly trusted package index and disable unintended extra indexes to reduce dependency-confusion exposure.
  4. Test dependency updates in a controlled environment before modifying pinned versions.
  5. Install dependencies inside an isolated virtual environment or container under a non-privileged account.
  6. Add automated checks that create a clean environment, install only declared dependencies, and exercise every avatar style.
  7. If avoiding NumPy is practical, implement the simple gradient using Pillow primitives so the Skill has a smaller dependency surface.
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (4)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description emphasizes local rendering but does not clearly disclose that the skill writes one or many image files to the local filesystem. Hidden or under-disclosed file writes are dangerous in agent contexts because users may expect a preview-only operation while the skill creates persistent artifacts, potentially consuming storage or placing files in unexpected locations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The trigger phrases are broad enough to activate on ordinary avatar-related requests, which can cause the agent to invoke this skill outside a narrowly scoped user intent. Because the skill generates files and may export for many platforms, overbroad activation increases the chance of unintended local side effects and unnecessary tool use.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

Scanner excerpt · LICENSE.txt (reported line 12)May include surrounding context.

text
permit persons to whom the Software is furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill documentation states 'Local Pillow rendering' and declares only pip install pillow, which implies Pillow is sufficient. However, create_gradient_avatar imports numpy, so the documented implementation requirements do not match the actual code path for one advertised feature.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.