Back to skill

Security audit

今日头条爆款查询

Security checks for vulnerabilities and agentic risk

Overview

This search skill needs review because its reports expose your API key to unsafe content, its local service lacks access controls, and searches can trigger payment setup without explicit approval.

Wait for corrected credential handling, safe report rendering, authenticated proxy access, and explicit approval before payment setup. If using the current package, CSV-only mode avoids the HTML report and local server. Searches send keywords to RedFox and consume API credits. Approve payment details and a pinned CLI installation separately. If reports already contain a live key, rotate it and remove those 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 (2)

T09 · Insecure Skill Coding Practices

Error
Location
.
Finding

External search content can execute JavaScript in the credential-bearing HTML report

Content
View full analysis

Impact

Injected JavaScript can read the API key embedded in the same report, send it to an attacker, read report data, and invoke the authenticated local proxy. This is browser-side execution, not demonstrated operating-system code execution.

T09 · Insecure Skill Coding Practices

Warning
Location
.
Finding

Unauthenticated loopback proxy permits cross-origin use of the user's API account

Content
View full analysis

Impact

An attacker can issue unauthorized searches, read their responses, and consume the user's API allowance or credits while the proxy remains running.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
Findings (13)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The core search and reporting behavior matches the description. However, emit_payment_required() only prints instructions and a structured payment-required payload; search_works() then terminates the process. No supplied executable logic invokes Alipay, monitors payment completion, or retries the original query. Those actions would require an external orchestrator or additional code not supplied. The third-party search API, credential loading, output files, and localhost report server are supporting implementation details rather than unrelated capabilities.

Content

No source excerpt is available for this finding.

A routine search failure is used to escalate into an automatic paid recharge without establishing user authorization for the purchase.

High
Category
Prompt Injection
Confidence
91% confidence
Finding

An insufficient-credit response triggers instructions to initiate and submit a payment workflow without establishing explicit user authorization for a purchase. This crosses the boundary between permission to search and permission to spend money, while relying on payment details supplied by an external response; the referenced workflow or payment tool might impose safeguards, but none are established in the supplied file.

Content

No source excerpt is available for this finding.

A search failure is framed as a prerequisite for an agent-driven payment workflow without an explicit user-approval checkpoint.

High
Category
Prompt Injection
Confidence
97% confidence
Finding

On an insufficient-credit response, the script directs the consuming agent to initiate an Alipay workflow using the API-provided payment URL, amount, and merchant information without an explicit user-approval checkpoint. The script does not itself execute a payment, but its imperative output and the skill's automatic-recharge description can cause a search request to escalate into an unapproved financial action, especially if the upstream response is compromised or misleading.

Content

No source excerpt is available for this finding.

Invocation examples include generic search, pagination, and export requests without an explicit Toutiao-specific activation constraint.

Medium
Category
Trigger Abuse
Confidence
90% confidence
Finding

The usage table presents phrases such as "Search for product review videos", "Show more results", and "Export CSV" as skill invocations, although these requests commonly apply to unrelated tasks. While the README describes a Toutiao search skill, it does not explicitly restrict these generic phrases to an already active Toutiao search session.

Content

No source excerpt is available for this finding.

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, file_read, file_write, network, shell.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

The search workflow does not disclose that user-provided keywords are sent to a third-party API provider.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

The workflow directs users to run searches without clearly stating that their keywords are transmitted to Redfox, a third-party API provider rather than Toutiao directly. Although the API-key setup signals an external integration, users researching confidential brands, incidents, or unpublished plans may not understand that their search terms leave the local environment.

Content

No source excerpt is available for this finding.

The workflow automatically installs a CLI without warning the user about local system changes.

Medium
Category
Output Handling
Confidence
94% confidence
Finding

A content-search request can automatically escalate into downloading and executing an installer that modifies the local environment, without a separate approval step. The -y option suppresses npm's package-installation prompt, and authorizing a search does not necessarily authorize installation of payment software.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx -y @alipay/agent-payment'.

Medium
Category
MCP Rug Pull
Confidence
98% confidence
Finding

The installation instruction executes an npm package using the mutable @latest tag, so the code executed can change without review. A compromised release could execute with the agent's local permissions and access files or credentials; its placement in a payment workflow increases the sensitivity, although this is a CLI rather than an MCP server.

Content

No source excerpt is available for this finding.

The payment workflow lacks a user-facing disclosure about transmitting payment information to an external service.

Medium
Category
Output Handling
Confidence
87% confidence
Finding

The workflow instructs the agent to submit the original cashier URL, product information, and amount to the payment-link service and then initiate payment handoff. Although these steps support the stated payment purpose, the instructions never require informing the user that their payment-link and order information will be sent to an external payment service.

Content

No source excerpt is available for this finding.

MCP server referenced without pinned version: 'npx -y @alipay/agent-payment'.

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.

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

Sending search parameters and the Redfox API key to the configured Redfox service is expected functionality, not inherently exfiltration. However, the surrounding localhost proxy accepts requests without authentication, adds the user's API key, and permits wildcard cross-origin access, allowing untrusted local clients—and potentially websites where browser controls permit localhost access—to consume paid API quota and read results through the user's credentials.

Content

Scanner excerpt · scripts/search.py (reported line 583)May include surrounding context.

python
def _do_proxy_request(self, url, payload):
        try:
            resp = requests.post(url, json=payload,
                headers={"Content-Type": "application/json", "X-API-KEY": self.api_key}, timeout=15)
            self._send_json(resp.json())
        except Exception as e:

subprocess module call

Medium
Category
Dangerous Code Execution
Confidence
70% confidence
Finding

subprocess module calls execute external commands. Without careful input validation, this enables command injection.

Content

Scanner excerpt · scripts/search.py (reported line 741)May include surrounding context.

python
if not args.no_open:
            step("打开浏览器...")
            try:
                subprocess.run(["open", url], check=True)
            except Exception:
                print(f"  请手动打开: {url}")

Several invocation examples are generic search, pagination, or export requests without a Toutiao-specific activation constraint.

Low
Category
Trigger Abuse
Confidence
90% confidence
Finding

Examples such as “搜一下测评类的视频” (search for review videos), “看更多结果” (see more results), and “导出 CSV” (export CSV) overlap with requests for many unrelated tools. Although the README describes a Toutiao skill, it does not require these generic phrases to occur within an already active Toutiao search session or provide exclusions for other contexts.

Content

No source excerpt is available for this finding.