Back to skill

Security audit

Douyin Creator Marketplace (Xingtu) Recommended Videos API

Security checks for vulnerabilities and agentic risk

Overview

The skill is a focused API wrapper, but it handles the user's API token in ways that can expose it through process listings and URL logs.

Install only if you are comfortable with the JustOneAPI token being passed through command-line arguments and included in the API request URL. Prefer a narrowly scoped, revocable token, avoid shared hosts where other users or monitoring can read process arguments, and rotate the token if it may have appeared in logs.

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
bin/run.mjs:27
Finding

API Token Exposed Through Process Arguments and URL Query Parameters

Content
View full analysis
parameter.name === "token"); if (!tokenParam || params.token !== undefined) { return; } if (!cliToken) { fail("--token is required for this operation.", { operationId: operation.operationId, }); } params.token = cliToken; } ``` All query parameters, including the token, are appended to the request URL: ```js function applyQueryParams(operation, params, url) { for (const parameter of operation.parameters.filter((item) => item.location === "query")) { const value = params[parameter.name]; if (value === undefined) { continue; } appendValue(url.searchParams, parameter.name, value); } } ``` The documented invocation also supplies the secret through a command-line argument: ```bash node {baseDir}/bin/run.mjs --operation "gwApiDataSpAuthorRecVideosV2V1" --token "$JUST_ONE_API_TOKEN" --params-json '{"oAuthorId":""}' ``` ### Technical Analysis Authentication must be transmitted to the declared JustOneAPI service for this Skill to work, but the selected mechanisms expose the credential more broadly than necessary. First, passing the token through `--token` places it in the Node process argument vector. Depending on host configuration, process arguments may be visible to other local users, process-mo ...[truncated 2042 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill invokes a network-capable helper (node .../bin/run.mjs) and requires an API token, but it does not declare any explicit tool scope such as permissions or allowed-tools. This weakens policy enforcement because an agent/runtime may allow broader tool access than intended, making outbound requests harder to constrain and audit.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill sends the authentication token as a URL query parameter, which is commonly logged by client tooling, proxies, web servers, browser history, and monitoring systems. Even though the request uses HTTPS, placing secrets in the URL increases accidental disclosure risk far beyond sending the token in an Authorization header or request header.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest requires a user authentication token as a query parameter, which increases the risk of credential exposure through logs, analytics systems, browser history, intermediary proxies, and error traces. Although HTTPS protects the transport, placing secrets in the URL is a well-known unsafe pattern, and the schema does not provide any warning or safer handling guidance.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation instructs callers to supply a user authentication token in a query parameter but provides no warning about secure handling. Tokens placed in URLs are commonly exposed through logs, browser history, analytics, proxy caches, and referrer headers, increasing the risk of credential disclosure and unauthorized API access.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
61% confidence
Finding

The file's embedded natural-language metadata is explicitly tied to Douyin/Xingtu, a region- and platform-specific context, but it does not state whether this localization is optional or justified for a region-specific skill. Because SQP-3 applies to language or locale policy concerns, this may represent an undocumented locale constraint.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JSON manifest describes the skill's purpose in broad terms but does not provide any explicit activation constraints, exclusions, or negative examples. For manifest files, that can create ambiguity about when this skill should be invoked versus other Douyin-related skills.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.