Back to skill

Security audit

circle-png-image

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims: it converts user-selected PNG files into circular PNG outputs using a small local Python script.

Install in a virtual environment and consider pinning Pillow before use in sensitive or reproducible workflows. The skill should only be given image paths you intend to process, and overwriting outputs should remain user-directed.

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

Unpinned Third-Party Pillow Dependency

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:11-12, SKILL.md:57, and SKILL.md:63
Vulnerability Type: Unpinned third-party dependency
Risk Level: Medium

Vulnerable Code

SKILL.md:11-12:

yaml
- kind: uv
  package: pillow

SKILL.md:57:

bash
python -m pip install pillow

SKILL.md:63:

bash
.venv/Scripts/python -m pip install pillow

Technical Analysis

The skill declares and recommends installing Pillow without specifying a reviewed version, lockfile, or package integrity hash. Consequently, the package manager resolves whichever release is available when installation occurs. This makes dependency resolution non-reproducible and prevents the skill package from guaranteeing that users install the same dependency version that was reviewed.

If the upstream distribution channel, publisher account, dependency resolution environment, or a newly released package version is compromised, installation can introduce attacker-controlled package contents. Package installation may also execute package-controlled build hooks under some distribution scenarios, while subsequent execution of circle_png.py imports and runs code from the installed PIL package.

No evidence indicates that Pillow itself is currently malicious. The issue is the absence of controls that bind installation to a known and verified artifact.

Attack Path

  1. A user or agent enables the skill and follows its automatic or documented dependency installation process.
  2. The package manager resolves pillow without a fixed version or integrity hash.
  3. A compromised, substituted, or otherwise unsafe release is selected from the configured package index.
  4. Package-controlled code may execute during installation, or it executes later when scripts/circle_png.py imports PIL.
  5. That code runs with the privileges of the account installing or invoking the skill.

Impact Assessment

Succ ...[truncated 615 chars]

Remediation
View remediation

Remediation Suggestions

  1. Pin Pillow to a specifically reviewed version in the skill metadata and installation documentation.
  2. Generate and commit a dependency lockfile that records exact transitive dependency versions.
  3. Require cryptographic hashes for downloaded artifacts, such as through a hash-locked requirements file and pip install --require-hashes.
  4. Obtain packages only from an explicitly configured, trusted package index.
  5. Review and update the pinned version through a controlled dependency-update process that includes vulnerability scanning and functional testing.
  6. Install the dependency in an isolated virtual environment or sandbox rather than a privileged or shared Python environment.
  7. Where operationally feasible, use a prebuilt, reviewed artifact and disable source builds to reduce exposure to package build hooks.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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