Back to skill

Security audit

Doubao Web Image

Security checks for vulnerabilities and agentic risk

Overview

This skill is an image-generation automation tool, but it intentionally uses stealth browser automation, persistent login sessions, and high-resolution/watermark-free retrieval behavior that users should review carefully before installing.

Install only if you are comfortable giving this tool a reusable Doubao web session and allowing it to automate your account in the background. Prefer a pinned reviewed commit, avoid global/root installation, delete ~/.doubao-web-session when done, restrict output paths to a safe folder, and treat debug HTML/screenshots as private account data.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (4)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:6
Finding

Shell Command Injection Through Unescaped User-Controlled Prompt

Content
View full analysis
` parameter. 4. If the user specifies an image save path, use the `--output=` parameter. 5. By default, execute the command in headless mode in the background: `npx ts-node /Users/pengjianfang/skills/doubao-web-image/scripts/main.ts "user's prompt" [optional parameters]`. ``` ### Technical Analysis The Skill instructs an AI Agent to interpolate a prompt derived from user input directly into a quoted shell command. It does not require argument-array execution, shell escaping, or validation of the prompt and optional output path. Double quotes alone are not a sufficient security boundary. If an Agent invokes this command through a shell, a malicious prompt containing a closing quote, command substitution, or other shell syntax could alter the resulting command. For example, input structurally resembling `" ; attacker-command ; echo "` could terminate the intended prompt argument and introduce another command. The absolute script path is also hardcoded to `/Users/pengjianfang/skills/doubao-web-image/scripts/main.ts`, which lies outside the audited artifact. If that location contains a different or attacker-controlled file, the Agent could execute code that was not included in this review. ### Attack Path 1. An attacker submits an image-generation request containing shell metacharacters or command-substitution syntax. 2. The Agent extracts the attacker-controlled text as the image prompt. 3. Following `SKILL.md`, the Agent inserts the prompt between double quotes in the documented command template. 4. The Agent execute ...[truncated 916 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
README.md:34
Finding

Recommended Global Installation Uses a Mutable Git Repository Revision

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
package-lock.json:30
Finding

Lockfile Retrieves Dependencies From a Third-Party Registry Mirror

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/doubao-webapi/client.ts:243
Finding

Authenticated Page Content Is Written to Predictable Debug Files

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (41)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding

The declared purpose is simple image generation, but the skill also persists browser session data, handles manual login, intercepts network traffic, retrieves watermark-free/original image URLs, and writes local artifacts. This hidden expansion of capability increases the chance of credential exposure, unauthorized data capture, and misuse beyond the user's informed consent.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

A stated goal of bypassing Doubao Web signature or risk controls is a direct red flag because it enables automation specifically designed to evade platform security mechanisms. In context, this makes the skill more dangerous than ordinary browser automation because the bypass is intentional and central to the design.

Content

No source excerpt is available for this finding.

Ssd 2

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The instructions describe browser automation as a means to evade Doubao's platform risk controls, which is a strong indicator of intentionally abusive design rather than incidental side effects. In a skill whose stated purpose is ordinary image generation, this mismatch materially increases the likelihood of policy evasion and unauthorized access to protected functionality.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

Intercepting SSE traffic to obtain image_ori watermark-free original URLs is not necessary for basic image generation and appears intended to access higher-value assets outside the normal presentation path. This can undermine provider controls, violate terms, and expose protected media retrieval behavior to downstream misuse.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The code deliberately modifies the user agent and passes anti-automation flags specifically to evade ByteDance/WAF detection, which is stealth behavior unrelated to normal image generation. Evasion mechanisms increase the likelihood of abusive automation, bypass of platform safeguards, and operation outside the service's expected trust model.

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.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The README explicitly says login state and cookies are stored locally in ~/.doubao-web-session and that later runs occur silently in the background, but it does not clearly warn that this is credential-adjacent sensitive data. In an AI skill context, persistent browser session artifacts can be reused to act as the user, so inadequate disclosure and handling guidance increases privacy and account-takeover risk if the host is shared or compromised.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README states that an AI assistant will silently invoke the CLI in the background to generate and download files for the user, but does not include an explicit notice about browser automation, network actions, session reuse, or filesystem writes. In a skill setting this is more dangerous because the agent may perform these side effects on behalf of the user with limited visibility, increasing the chance of unexpected account actions, privacy leakage, or unwanted downloads.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill is allowed to activate not only when the user names Doubao, but also whenever the user asks for image generation without specifying a tool. Because this skill performs login persistence, browser automation, and network interception, overly broad auto-invocation increases the risk of invoking a high-privilege workflow without informed user choice.

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.

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.

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.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation explicitly says it 'perfectly bypasses' a_bogus signature risk controls and extracts watermark-free original image URLs by intercepting SSE responses. That goes beyond normal image generation and indicates deliberate circumvention of platform protections and content delivery controls.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

Persisting login status to ~/.doubao-web-session is security-relevant because it stores authentication state on disk, potentially exposing sessions to other local processes or future unintended reuse. The omission of a clear warning deprives users of informed consent about credential/session persistence.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill omits a clear warning that it intercepts network responses and parses them for image URLs. In this context, hidden network interception is particularly sensitive because it is tied to extracting watermark-free originals and bypassing normal platform output controls.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.