Back to skill

Security audit

Pixshop Creative API — Developer REST Endpoints

Security checks for vulnerabilities and agentic risk

Overview

The skill is a real Pixshop API guide, but it asks users to install a global CLI and handle account tokens and personal images without enough security or privacy guidance.

Review before installing. Use this only if you are comfortable sending prompts, images, face/person/ID-photo media, and bearer-token-authenticated requests to Pixshop services. Treat the token as a password, avoid printing or pasting it into chats/logs, prefer a pinned or isolated CLI install, and do not upload images of people unless you have permission and understand the service's privacy terms.

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

Unpinned Global Package Installation and Unsafe Token Disclosure

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 15–18
Vulnerability Type: Unpinned third-party executable dependency and bearer-token exposure
Risk Level: Medium

Vulnerable Code

bash
# Method 1: Obtain a token through CLI login
npm install -g pixshop
pixshop login
cat ~/.pixshop-config.json | jq '.accessToken'

Technical Analysis

The setup instructions install and execute the latest available pixshop npm package globally without pinning a reviewed version, verifying package integrity, or identifying a trusted publisher. Because npm packages can execute lifecycle scripts during installation, compromise of the package, publisher account, or distribution channel could result in arbitrary code execution under the installing user's account.

A global installation unnecessarily expands the dependency's reach and persistence within the user's command environment compared with an isolated, version-pinned invocation.

The instructions also print the Pixshop bearer token to standard output. This may expose the credential through terminal history, command output capture, CI logs, screen sharing, or AI-agent transcripts. Although sending bearer tokens and user-provided media to https://pixshop.app is necessary for the declared remote API integration, displaying the credential is not required.

Attack Path

  1. An attacker compromises the npm package, its publisher account, or a future unreviewed release.
  2. A user follows the Skill instructions and runs npm install -g pixshop.
  3. npm downloads the attacker-controlled release and may execute its lifecycle scripts.
  4. The malicious package runs with the user's privileges and can access files and credentials available to that account.
  5. Independently, the user runs the token-display command.
  6. The bearer token is captured in terminal output, logs, or an agent transcript.
  7. A party with access to that output reuses the token against ...[truncated 812 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin the CLI to a specifically reviewed version rather than installing the latest release implicitly.
  2. Document the official npm package name, publisher identity, registry, and expected integrity information.
  3. Prefer an isolated, non-global execution method or a locked project dependency over npm install -g.
  4. Review package lifecycle scripts and disable them during installation where compatible with the CLI.
  5. Do not print bearer tokens to standard output. Provide instructions that load the token directly into a protected environment variable or secret manager.
  6. Ensure token-bearing output is excluded from shell tracing, CI logs, debugging output, and agent transcripts.
  7. Restrict permissions on ~/.pixshop-config.json to the owning user and document secure token revocation and rotation.
  8. Warn users before uploading personal, biometric, or otherwise sensitive images to the remote service, and require explicit confirmation when appropriate.
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 (5)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill instructs users to obtain and handle bearer tokens and even shows extracting an access token from a local config file, but it provides no warning that these credentials grant account access and will be sent to third-party services. In an agent/tooling context, this increases the chance that users expose secrets in shell history, logs, prompts, or unintended downstream requests.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
88% confidence
Finding

This example explicitly transmits email/password credentials to an external authentication endpoint and then encourages use of the resulting token, but it does not frame this as sensitive secret handling. In a skill intended for agent-assisted use, that omission is risky because users may enter live credentials into insecure contexts or automated logs.

Content

Scanner excerpt · SKILL.md (reported line 24)May include surrounding context.

cat ~/.pixshop-config.json | jq '.accessToken'

方式 2:通过 Supabase Auth API

curl -X POST 'https:///auth/v1/token?grant_type=password'
-H 'apikey: '
-d '{"email":"...","password":"..."}'

text

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 55)May include surrounding context.

示例:

bash
curl -X POST https://pixshop.app/api/ai/generate \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"a cute cat in space","aspectRatio":"1:1"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documented endpoints include uploading personal images, including face images for face-swap, makeup analysis, ID photos, and virtual try-on, without any privacy or consent warning. Sending biometric or highly personal images to a remote API can expose sensitive data, create compliance issues, and enable misuse if users are not clearly informed about retention, consent, and third-party processing.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 242)May include surrounding context.

| ... | object | ✅ | 技能对应的输入参数 |

bash
curl -X POST https://pixshop.app/api/agent/skills/image-generate/execute \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"prompt":"a sunset","aspectRatio":"16:9"}'

Static analysis

No suspicious patterns detected.