Back to skill

Security audit

Jimeng AI

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly does the advertised Jimeng AI image/video generation, but it needs Review because it handles cloud credentials and prompts while storing data locally and exposing sensitive details in debug logs.

Install only if you are comfortable sending prompts to VolcEngine and storing prompts, task IDs, responses, and generated outputs on disk. Avoid --debug and unset generic DEBUG in shared terminals, CI, or logged agent environments. Prefer temporary scoped VolcEngine credentials, restrict access to the output directory, and update/audit npm dependencies before use.

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/common.ts:279
Finding

Debug Logging Discloses Access Key Identifiers and User Prompts

Content
View full analysis
= { 'Action': action, 'Version': version, }; query['X-Date'] = datetime; query['X-NotSignBody'] = '1'; query['X-Credential'] = credential; query['X-Algorithm'] = 'HMAC-SHA256'; query['X-SignedHeaders'] = ''; query['X-Expires'] = expires.toString(); ``` The image-generation request logs the beginning of that signed URL and the complete request body: ```typescript if (process.env.DEBUG) { console.error('Debug - Request URL:', url.slice(0, 200) + '...'); console.error('Debug - Request Body:', payload); } ``` The video-generation request contains the same logging behavior: ```typescript if (process.env.DEBUG) { console.error('Debug - Request URL:', url.slice(0, 200) + '...'); console.error('Debug - Request Body:', payload); } ``` ### Technical Analysis The `X-Credential` query parameter contains the Volcengine Access Key identifier. Because query parameters are sorted when the signed URL is constructed, the first 200 characters can include this credential identifier. Truncating a URL is not a reliable redaction mechanism. The complete request body is also written to standard error. This body includes the user-provided generation prompt and task configuration. Prompts may contain confidential project information, unreleased content, personal data, or other sensitive material. Debug logging is activated either by the command-line `--debug` option or by an inherited `DEBUG` environment variable. Consequently, exposure can occur in local terminal history, CI/CD logs, ...[truncated 1498 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (79)

Instruction Override

High
Category
Prompt Injection
Confidence
70% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · README.md (reported line 87)May include surrounding context.

md
| `--size` | Custom area (optional, e.g. `4194304` = 2048×2048) | - |
| `--seed` | Random seed (optional) | - |
| `--output` | Image output directory | `./output` |
| `--debug` | Enable debug mode | `false` |
| `--no-download` | Do not download images, only return URLs | `false` |

## Text-to-Image Workflow

Instruction Override

High
Category
Prompt Injection
Confidence
70% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

Scanner excerpt · README.md (reported line 252)May include surrounding context.

md
| `--size` | Custom area (optional, e.g. `4194304` = 2048×2048) | - |
| `--seed` | Random seed (optional) | - |
| `--output` | Image output directory | `./output` |
| `--debug` | Enable debug mode | `false` |
| `--no-download` | Do not download images, only return URLs | `false` |

## Text-to-Image Workflow

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The skill description also omits that video results may be downloaded from returned URLs and saved locally, while the documented purpose does not clearly disclose this persistence and network retrieval behavior. Hidden download and storage actions increase the risk of unexpected data transfer, local disk exposure, and policy noncompliance in controlled environments.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The skill description also omits that video results may be downloaded from returned URLs and saved locally, while the documented purpose does not clearly disclose this persistence and network retrieval behavior. Hidden download and storage actions increase the risk of unexpected data transfer, local disk exposure, and policy noncompliance in controlled environments.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
$ npx ts-node scripts/text2image.ts "一只可爱的猫咪"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx ts-node scripts/text2video.ts "一只可爱的猫咪在草地上奔跑"

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
npx ts-node scripts/text2video.ts "一只可爱的猫咪在草地上奔跑"

Known Vulnerable Dependency: axios==1.13.5 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
97% confidence
Finding

The lockfile pins axios 1.13.5, and the provided advisories include SSRF-related proxy bypass and prototype-pollution-assisted MITM/credential theft issues. This skill is an API-integration skill that likely makes outbound HTTP requests to the Jimeng/Volcengine service, so a vulnerable HTTP client is directly security-relevant rather than incidental.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: form-data==4.0.5 — 1 advisory(ies): CVE-2026-12143 (form-data: CRLF injection in form-data via unescaped multipart field names and f)

High
Category
Supply Chain
Confidence
91% confidence
Finding

form-data is flagged for CRLF injection through unescaped multipart field names/filenames. If this skill ever uploads user-supplied files, prompts, or metadata through multipart requests, an attacker may be able to manipulate request structure or inject unintended headers/body parts to tamper with downstream API interactions.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: axios==1.13.5 — 16 advisory(ies): CVE-2026-44494 (axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `co); CVE-2026-44495 (axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollut); CVE-2025-62718 (Axios has a NO_PROXY Hostname Normalization Bypass that Leads to SSRF) +13 more

High
Category
Supply Chain
Confidence
97% confidence
Finding

The package permits installation of axios versions in the affected range, and the static finding indicates resolution to a version with multiple known advisories, including SSRF and MITM-related issues. In a skill that likely makes outbound API calls to a cloud AI service, a vulnerable HTTP client is more dangerous because it may handle credentials, proxies, redirects, or attacker-influenced endpoints and responses.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README explicitly states that prompts, task metadata, and API responses are persisted on disk using predictable folders derived from md5(prompt). This can expose sensitive user prompts, generated media, task IDs, and service response data to other local users, backups, logs, or downstream tooling, especially because the documentation does not warn users about privacy implications or data retention.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly states that prompts, API responses, task IDs, and generated media are persistently stored on disk, but it does not warn users about privacy, retention, or sensitive-content exposure. In an AI generation tool, prompts may contain confidential business data, personal data, or proprietary creative material, and saved responses/media can remain accessible to other local users, backups, or endpoint collection tools.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/common.ts:279

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/text2video.ts:108