Back to skill

Security audit

Xiaohongshu Creator Marketplace (Pugongying) Note Performance Metrics API

Security checks for vulnerabilities and agentic risk

Overview

This is a narrowly scoped read-only API skill, but its token handling can expose the JustOneAPI credential through command-line arguments and URL query strings.

Install only if you are comfortable sending a JustOneAPI token to the declared JustOneAPI endpoint. Use a narrowly scoped or disposable token if available, avoid sharing command transcripts or full request URLs, and rotate the token if it may have appeared in process listings, logs, telemetry, or error reports.

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

Authentication 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 query parameters, including the token, are appended to the request URL in `bin/run.mjs:239-247` and `bin/run.mjs:255-270`: ```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); } } function appendValue(searchParams, name, value) { if (Array.isArray(value)) { for (const item of value) { appendValue(searchParams, name, item); } return; } if (value && typeof val ...[truncated 2585 chars]
Remediation
View remediation
"}' ``` 5. If the upstream API only supports query-string authentication, document that residual limitation and implement compensating controls: - Redact the `token` query parameter from API gateway, proxy, tracing, telemetry, and server access logs. - Never include the complete request URL in errors or diagnostics. - Use narrowly scoped, short-lived tokens where available. - Rotate any token suspected of appearing in process or URL logs. - Restrict access to process metadata and operational logs. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% 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. That mismatch weakens policy enforcement and reviewability, because an agent platform may not clearly constrain or disclose that the skill performs outbound network access to a third-party API.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill defines the authentication token as a query parameter and automatically injects it into the request URL. Query-string tokens are commonly exposed via logs, browser/history tooling, proxy caches, monitoring systems, and error reports, which increases the chance of credential leakage even when HTTPS is used.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The API requires an authentication token to be supplied in the URL query string, which is routinely exposed in logs, browser history, intermediary monitoring systems, analytics tooling, and referrer data more often than headers or bodies. In this skill context, the token grants access to creator marketplace data, so leakage could enable unauthorized API access or account/data misuse until the token is rotated.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

The documentation requires a user authentication token as a query parameter but provides no warning about sensitive credential handling, storage, logging, or privacy implications. Query parameters are commonly captured in logs, browser history, monitoring systems, and intermediary infrastructure, which increases the chance of inadvertent token exposure and unauthorized API access.

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:49