Back to skill

Security audit

Weibo TV Video Details API

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to be a focused JustOneAPI Weibo lookup tool, but it handles the API token in ways that can expose the credential through command lines and URL query strings.

Install only if you are comfortable sending a JustOneAPI token to api.justoneapi.com for this endpoint. Prefer a scoped, revocable, low-quota token, avoid running it in environments that log full command lines or URLs, 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:15
Finding

API Token Exposure Through Command-Line Arguments and URL Query Parameters

Content
View full analysis
Remediation
View remediation
"}' ``` Prefer configuring the environment outside the command invocation when the execution platform supports secret injection. 2. **Use an authentication header if supported by JustOneAPI.** For example: ```js const requestInit = { headers: { accept: "application/json", authorization: `Bearer ${token}`, }, method: operation.method, }; ``` The token must then be removed from `params`, the operation’s query-parameter definition, and the generated URL. The exact header scheme must follow the provider’s official authentication specification. 3. **If the upstream API strictly requires query authentication**, document this constraint and reduce exposure: - Never log the complete request URL. - Configure clients, gateways, reverse proxies, tracing systems, and server access logs to redact the `token` parameter. - Disable verbose HTTP debugging in production. - Ensure exception and telemetry systems sanitize URLs before storage. - Avoid redirects that could propagate query parameters. - Apply short expiration periods, minimal scopes, account-level rate limits, and regular rotation. - Revoke and replace tokens suspected of appearing in historical process or URL logs. 4. **Reject token injection through `--params-json`.** The current `injectToken()` function preserves `params.token` when supplied by users, allowing the credential to be embedded in a broader command-line JSON value. Reserve auth ...[truncated 295 chars]
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • 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
Findings (7)

Credential Access

High
Category
Privilege Escalation
Confidence
97% confidence
Finding

The operation accepts an access token as a query parameter, which is a dangerous pattern because query strings are commonly logged by clients, servers, proxies, browser history, and monitoring systems. If exposed, the token could allow unauthorized use of the third-party API and potentially broader account or billing abuse depending on the token's privileges.

Content

Scanner excerpt · generated/operations.json (reported line 15)May include surrounding context.

json
"parameters": [
        {
          "defaultValue": null,
          "description": "API access token.",
          "enumValues": [],
          "location": "query",
          "name": "token",

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 · bin/run.mjs (reported line 20)May include surrounding context.

js
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | API access token. |
| `oid` | `query` | yes | `string` | n/a | Weibo video/object ID. |

### Request body

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 · generated/operations.md (reported line 19)May include surrounding context.

md
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | API access token. |
| `oid` | `query` | yes | `string` | n/a | Weibo video/object ID. |

### Request body

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill invokes a network-capable helper (node .../bin/run.mjs) and depends on an API token, but it does not declare any explicit tool scope such as permissions or allowed-tools. That omission weakens policy enforcement and reviewability because consumers cannot clearly determine or constrain the skill's external communication behavior before use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This code performs an outbound HTTP request and includes a required token query parameter, which means credential-like data is transmitted to an external service. While the manifest describes the API parameter, there is no confirmation prompt, user-facing log, or warning comment/docstring disclosing that the token will be sent in the request.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest requires an API token and sends it to api.justoneapi.com, but the skill metadata does not clearly warn users that their credential is transmitted to a third-party service. This can lead to users disclosing sensitive credentials without informed consent, increasing the risk of token misuse, logging exposure, or unexpected sharing with an external provider.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

This JSON manifest describes the skill's purpose but does not provide any explicit trigger phrases, invocation constraints, or exclusion conditions. For manifest files, that lack of specificity can make it unclear when the skill should activate versus when it should not, increasing the chance of unintended invocation.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.secret_argv_exposure

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
SKILL.md:41