Back to skill

Security audit

TikTok User Profile API

Security checks for vulnerabilities and agentic risk

Overview

This is a focused JustOneAPI TikTok profile lookup skill, with the main caution being that its API token is passed through the command line and URL query string.

Install only if you are comfortable sending your JustOneAPI token and TikTok lookup parameters to api.justoneapi.com. Use a narrowly scoped token if available, avoid pasting token values into chats or logs, and rotate the token if you suspect command-line history, process telemetry, or URL logs may have captured it.

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:25
Finding

API Token Exposed Through Command-Line 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 parameters marked as query parameters, including the token, are appended to the 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 resulting URL is transmitted to the declared JustOneAPI endpoint: ```js response = await fetch(url, requestInit); ``` The documented invocation also places the secret in the process command line: ```bash node {baseDir}/bin/run.mjs --operation "getTiktokUserDetailV1" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}' ``` ### Technical Analysis The Skill must authenticate to `https://api.justoneapi.com` to provide its declared TikTok profil ...[truncated 2277 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 (4)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill invokes a network-capable helper (node .../run.mjs) that sends requests to an external API, but the manifest does not declare an explicit tool scope such as permissions or allowed-tools. This creates an authorization and transparency gap: a host or reviewer cannot easily enforce that the skill is only permitted to use the network in the intended way, which increases the risk of unintended outbound requests or misuse if the skill is modified or composed with other logic.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill defines the API security token as a query parameter and automatically appends it to the request URL. Query-string secrets are commonly exposed through logs, browser/history layers, intermediary monitoring, reverse proxies, and error reporting systems, making credential leakage more likely even when HTTPS is used.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill requires a sensitive API token and places it in a query parameter, but the manifest provides no user-facing warning that a secret will be transmitted to a third-party service. Query-string tokens are commonly exposed in logs, analytics, browser history, and intermediary infrastructure, increasing the chance of credential leakage and unauthorized API use.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

This JSON file is a manifest-style interface definition, so vague-trigger checks apply. The description states what API call the skill makes but provides no activation constraints, trigger phrases, or exclusion conditions, which can make it unclear when the skill should be selected versus other TikTok-related skills.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.