Back to skill

Security audit

Poyo Kling 2 6 Motion Control

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward PoYo API helper for submitting Kling motion-control video jobs, with a credential-handling caution but no evidence of hidden or malicious behavior.

Install only if you intend to submit image/video generation payloads to PoYo. Prefer setting POYO_API_KEY in a protected environment rather than passing the key on the command line, avoid putting secrets in payload files, and review any media URLs or callback_url values because those will be sent to PoYo as part of generation requests.

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_kling_2_6_motion_control.sh:4
Finding

PoYo API Credential Exposure Through Command-Line Arguments

Content
View full analysis

Vulnerability Details

File Location: scripts/submit_kling_2_6_motion_control.sh, lines 4–7 and 22
Vulnerability Type: API credential exposure through shell history and process arguments
Risk Level: Medium

Vulnerable Code

sh
api_key="${POYO_API_KEY:-${1:-}}"
if [ -z "$api_key" ]; then
  echo "Usage: submit_kling_2_6_motion_control.sh [api_key] [payload.json]" >&2
  echo "Or set POYO_API_KEY and pass [payload.json]. If no payload file is given, JSON is read from stdin." >&2
  exit 1
fi

# ...

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

Technical Analysis

The script permits a PoYo API key to be supplied as its first positional argument. This can persist the credential in shell history, terminal logging, command auditing, or process-launch telemetry.

Additionally, the script expands the API key directly into curl's -H command-line argument. During execution, the resulting Authorization: Bearer ... value may be observable through process inspection facilities, monitoring agents, audit systems, or diagnostic tooling. This exposure occurs even when the key originally comes from POYO_API_KEY, because it is subsequently expanded into curl's argument vector.

Exploitation requires local process visibility, access to captured shell history, or access to process/audit telemetry. The script does not itself transmit the credential to an unrelated endpoint; it sends it to the documented PoYo API.

Attack Path

  1. A user invokes the script with a valid PoYo API key as a positional argument, or supplies it through POYO_API_KEY.
  2. If supplied positionally, the key may be recorded in shell history or command logs.
  3. The script expands the key into curl's authorization-header argument.
  4. A local user, monitoring process, audit collector, or party with access to command telemetry captures the bearer token.
  5. The attacker reuses the toke ...[truncated 631 chars]
Remediation
View remediation

Remediation Suggestions

  1. Remove support for supplying the API key as a positional argument. Require a protected environment variable, private credential file, or operating-system secret provider.
  2. Do not expand the bearer token directly into curl's argument vector.
  3. Supply the authorization header through a securely permissioned curl configuration file or another mechanism that does not expose the token in process arguments.
  4. If temporary credential material is unavoidable:
    • Create it with restrictive permissions such as 0600.
    • Use a private temporary directory.
    • Register a trap to remove it on normal exit and signals.
    • Never place it in a shared or predictable path.
  5. Document that users must not enter API keys directly on command lines or store them in payload files.
  6. Rotate any credential that may already have appeared in shell history, process telemetry, or command audit logs.
  7. Restrict local process inspection and access to command histories and monitoring logs according to least privilege.
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 (9)

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-kling-2-6-motion-control
description: Kling 2.6 Motion Control on PoYo / poyo.ai via `https://api.poyo.ai/api/generate/submit`; use for `kling-2.6-motion-control`, motion transfer, character animation, orientation control, and 720p/1080p output.
metadata: {"openclaw": {"homepage":"https://poyo.ai/models/kling-2-6-motion-control", "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": "kling-2.6-motion-control",
  "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_kling_2_6_motion_control.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_kling_2_6_motion_control.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

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The curl command sends the bearer token and JSON body to an external API endpoint, which is a network operation involving credentials and potentially user-supplied data. Aside from the usage text, the script provides no confirmation, logging, or comment warning that data and credentials will be transmitted off-host.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.