Back to skill

Security audit

Poyo Seedream 5 0 Lite

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent PoYo image-generation skill, but it needs review because its helper script can take the PoYo API key as a command-line argument, which can expose the key in shell history or process logs.

Review before installing or using. Prefer setting POYO_API_KEY through a protected environment or secret manager, do not pass the key on the command line, and avoid sending private prompts or reference image URLs unless you are comfortable sharing them with PoYo's API.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/submit_seedream_5_0_lite.sh:4
Finding

API Key Exposure Through Command-Line Arguments

Content
View full analysis
&2 echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2 ``` ### Technical Analysis When `POYO_API_KEY` is not set, the script accepts the API key as its first positional command-line argument. The usage instructions explicitly encourage this invocation method. Command-line arguments can be exposed through local process inspection utilities, process-monitoring systems, execution telemetry, audit logs, shell history, job schedulers, or wrapper scripts that record invoked commands. Although exposure depends on the host environment and process visibility controls, command-line arguments are not an appropriate transport mechanism for long-lived credentials. The exposed key is subsequently used as a Bearer token for the PoYo API. An attacker who captures it can authenticate independently of the script. ### Attack Path 1. A user runs the script without setting `POYO_API_KEY`, supplying the API key as the first command-line argument. 2. The plaintext key becomes part of the process argument list and may also remain in shell history, monitoring telemetry, scheduler configuration, or wrapper logs. 3. A local user or component with access to one of those data sources retrieves the key. 4. The attacker sends requests directly to the PoYo API using the captured Bearer token. 5. Those requests are attributed to and potentially billed against the victim's account. ### Impact Assessment Successful exploitation exposes the privileges associated with the compromised PoYo API key. An attacker could submit unauthorized image-generation or editing jobs, consume a ...[truncated 320 chars]
Remediation
View remediation
&2 echo "Usage: POYO_API_KEY=... submit_seedream_5_0_lite.sh [payload.json]" >&2 exit 1 fi payload="${1:-}" ``` ]]>
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
Findings (10)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

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

md
---
name: poyo-seedream-5-0-lite
description: Seedream 5.0 Lite image generation and editing on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `seedream-5.0-lite`, `seedream-5.0-lite-edit`, 2K/3K output, multi-reference editing, and aspect-ratio control.
metadata: {"openclaw": {"homepage":"https://poyo.ai/models/seedream-5-0-lite-api", "requires": {"bins": ["curl"], "env": ["POYO_API_KEY"]}, "primaryEnv": "POYO_API_KEY"}}

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/api.md (reported line 19)May include surrounding context.

Content-Type: application/json

text

Get API keys from <https://poyo.ai/dashboard/api-key>.

Recommended skill env var:

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 · references/api.md (reported line 42)May include surrounding context.

Submission example

bash
curl -sS https://api.poyo.ai/api/generate/submit   -H 'Authorization: Bearer YOUR_API_KEY'   -H 'Content-Type: application/json'   -d '{
  "model": "seedream-5.0-lite",
  "callback_url": "https://your-domain.com/callback",
  "input": {

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 3)May include surrounding context.

md
body=$(cat)
fi

curl -sS https://api.poyo.ai/api/generate/submit   -H "Authorization: Bearer $api_key"   -H 'Content-Type: application/json'   -d "$body"

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 · references/api.md (reported line 5)May include surrounding context.

md
body=$(cat)
fi

curl -sS https://api.poyo.ai/api/generate/submit   -H "Authorization: Bearer $api_key"   -H 'Content-Type: application/json'   -d "$body"

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 · references/api.md (reported line 42)May include surrounding context.

md
body=$(cat)
fi

curl -sS https://api.poyo.ai/api/generate/submit   -H "Authorization: Bearer $api_key"   -H 'Content-Type: application/json'   -d "$body"

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 · scripts/submit_seedream_5_0_lite.sh (reported line 22)May include surrounding context.

sh
body=$(cat)
fi

curl -sS https://api.poyo.ai/api/generate/submit   -H "Authorization: Bearer $api_key"   -H 'Content-Type: application/json'   -d "$body"

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% 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 · scripts/submit_seedream_5_0_lite.sh (reported line 22)May include surrounding context.

sh
body=$(cat)
fi

curl -sS https://api.poyo.ai/api/generate/submit   -H "Authorization: Bearer $api_key"   -H 'Content-Type: application/json'   -d "$body"

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

This markdown file instructs users to obtain an API key and store it in an environment variable, which involves handling sensitive credentials. The reference does not include any warning to avoid hardcoding, logging, or exposing the key, so users are not alerted to the privacy/security implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This shell script accesses a sensitive credential via POYO_API_KEY, but the file contains no comment, warning, or other user-facing disclosure that it will read credentials from the environment. Under the code-file criteria, sensitive environment variable access should have at least some visible disclosure unless clearly documented elsewhere in the skill description, which is not present in this file.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.