Back to skill

Security audit

OpenAI Image CLI

Security checks for vulnerabilities and agentic risk

Overview

The skill does what it says, but it asks users to globally install an unaudited, unpinned third-party CLI that will handle API keys, images, prompts, and local history.

Review this before installing. Prefer a pinned or locally installed version, inspect the referenced npm/GitHub package, use a restricted OpenAI API key with spending limits, avoid confidential images or prompts unless remote processing is acceptable, and clear or locate the CLI history when handling sensitive work.

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:13
Finding
Unpinned Third-Party CLI Installed Globally## Vulnerability Details **File Location**: `SKILL.md`, lines 13-17 **Vulnerability Type**: Supply-chain exposure through an unpinned globally installed npm package **Risk Level**: Medium **Vulnerable Code Snippet**: ```markdown ## Installation ```bash npm install -g @versatly/openai-image-cli ``` ``` ### Technical Analysis The installation instructions direct users to install `@versatly/openai-image-cli` globally without specifying an exact version or package integrity value. Consequently, npm resolves whichever package version is current when installation occurs rather than the version reviewed when this skill was published. The package implementation is not included in the audited project, so its source code, lifecycle scripts, credential handling, image processing, history storage, and network behavior cannot be verified from this artifact. npm lifecycle scripts may execute during installation with the permissions of the installing user. A global installation also exposes the installed executable broadly through the user's command search path. This is a supply-chain risk rather than evidence that the referenced package is currently malicious. Exploitation depends on compromise of the package, its publisher account, its dependencies, or the package distribution channel. ### Attack Path 1. An attacker compromises the referenced npm package, a transitive dependency, or the associated publisher account. 2. The attacker publishes a malicious version or introduces malicious lifecycle or runtime behavior. 3. A user follows the skill instructions and executes `npm install -g @versatly/openai-image-cli`. 4. npm resolves the compromised release because no exact version or integrity constraint is specified. 5. Malicious lifecycle code may execute during installation, or malicious runtime code may execute when the user invokes `openai-image`. 6. The compromised process may access data available to the installing user, i ...[truncated 805 chars]
Remediation
## Remediation Suggestions 1. Pin the dependency to a reviewed exact version, for example `@versatly/openai-image-cli@1.0.0`, rather than resolving the latest release. 2. Record and verify package integrity through a lockfile or equivalent cryptographic integrity mechanism. 3. Prefer a project-local installation over `npm install -g` to reduce command-path exposure and improve reproducibility. 4. Vendor or otherwise audit the CLI implementation and its complete transitive dependency tree before recommending execution. 5. Where compatible with the package, disable npm lifecycle scripts during installation and explicitly review any scripts before enabling them. 6. Run the CLI with least privilege in an isolated environment and grant access only to required input and output directories. 7. Store API credentials in a protected secret store or narrowly scoped environment, avoid plaintext configuration where possible, and use a restricted API key with usage limits and monitoring. 8. Establish dependency monitoring, signature or provenance verification, and a controlled update process so new releases are reviewed before adoption.
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 (2)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill encourages users to generate and edit images using prompts, source images, masks, and reference images, but it does not clearly warn that this content is sent to a remote OpenAI service. Users may unknowingly upload sensitive images, proprietary assets, or personal data, creating a privacy and data-handling risk that is especially relevant for image editing workflows.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill states that history tracking is enabled by default, but it does not warn users that generation activity may be stored locally on disk. This can expose prompt contents, file paths, model usage, and potentially sensitive workflow metadata to other local users, backups, or forensic review on shared or managed systems.

Static analysis

No suspicious patterns detected.