Back to skill

Security audit

全球AI新闻简报

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent, but it needs Review because untrusted social-media data can be inserted into an automatically opened HTML report without documented escaping or URL validation.

Install only if you are comfortable sending search terms and the API key-authenticated request to RedFox. Do not use confidential keywords, personal investigations, or secrets as queries. Treat generated HTML reports as untrusted unless the report generator escapes text and validates URLs; ideally require confirmation before opening the report automatically and use a private, non-/tmp output path.

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

Warning
Location
assets/report-template.html:232
Finding

Unescaped External Content in Generated HTML Report

Content
View full analysis
{{TITLE}}
{{AUTHOR}} · {{PUBLISH_TIME}}
👍 {{LIKES}} 💬 {{COMMENTS}} 🔁 {{SHARES}} 👁 {{VIEWS}}
查看原文 → ``` Similar raw placeholders also occur in the document title, keyword, timeline, topic, KOL, and analysis sections. ### Technical Analysis The template places externally sourced social-media fields directly into HTML text and attribute contexts. The audited template does not establish that these values must be HTML-escaped or that URL values must be validated before substitution. Text placeholders such as `{{TITLE}}` and `{{AUTHOR}}` can break out of their intended elements if substituted with markup. Attribute placeholders such as `{{COVER_URL}}` and `{{URL}}` are more sensitive because quote characters may terminate the attribute and introduce additional attributes or elements. A dangerous URL scheme may also be placed in an anchor if URL validation is absent. The data originates from third-party social-media search results and therefore must be treated as untrusted, even though it is returned through the RedFox API. ### Attack Path 1. An attacker publishes a social-media item containing crafted markup or attribute-breaking characters in a title, author, description, or URL-related field. 2. A user searches for a keyword that causes the malicious item to appear in the RedFox API response. 3. The Skill norm ...[truncated 1047 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/fetch_all.py:409
Finding

Predictable Shared Temporary File Allows Symbolic-Link File Clobbering

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (14)

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The code does match part of the description: it performs cross-platform keyword search across the listed 11 platforms and aggregates/normalizes results. However, the declared purpose emphasizes a broader end-user capability centered on AI-generated summaries, clustering, sentiment analysis, deep interpretation, and formatted outputs (table + interactive HTML report). None of those higher-level analysis or reporting features appear in this code chunk. Instead, this script is limited to backend fetching and JSON export. This is a material underimplementation relative to the declared description, so the description does not accurately represent what this supplied code chunk actually does.

Content

No source excerpt is available for this finding.

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/report-template.html (reported line 96)May include surrounding context.

html
<body>
<div class="container">

<!-- Header -->
<h1>全球AI新闻简报</h1>
<p class="subtitle">关键词:「{{KEYWORD}}」 | 覆盖 {{PLATFORM_COUNT}} 个平台 | 共 {{TOTAL_ITEMS}} 条内容 | 数据时间范围:{{DATA_TIME_RANGE_SHORT}}</p>

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/report-template.html (reported line 96)May include surrounding context.

html
<body>
<div class="container">

<!-- Header -->
<h1>全球AI新闻简报</h1>
<p class="subtitle">关键词:「{{KEYWORD}}」 | 覆盖 {{PLATFORM_COUNT}} 个平台 | 共 {{TOTAL_ITEMS}} 条内容 | 数据时间范围:{{DATA_TIME_RANGE_SHORT}}</p>

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · assets/report-template.html (reported line 195)May include surrounding context.

html
<tr><th>平台</th><th>内容数</th><th>总互动</th><th>情感倾向</th><th>关注焦点</th><th>代表观点</th></tr>
    </thead>
    <tbody>
      <!-- {{PLATFORM_COMPARISON_ROWS}} -->
      <tr>
        <td>{{PLATFORM}}</td><td>{{ITEM_COUNT}}</td><td>{{TOTAL_ENGAGEMENT}}</td>
        <td>{{SENTIMENT}}</td><td>{{FOCUS}}</td><td>{{VIEWPOINT}}</td>

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The README promotes large-scale cross-platform collection, aggregation, sentiment analysis, and source-level reporting across 11 platforms, but it does not warn users about privacy, consent, terms-of-service, retention, or lawful-use constraints. In a skill explicitly designed for intelligence gathering and public-opinion analysis, that omission can normalize collection of personal or sensitive social data and increase the risk of misuse, regulatory violations, or unsafe downstream handling.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill instructs the agent to use environment variables, make network requests to a third-party host, write files locally, and open a generated HTML report, but it declares no explicit tool scope or permission boundaries. This increases the chance the skill is invoked with broader capabilities than the user expects, making unintended data transmission or filesystem actions more likely.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad and common, so the skill may activate for generic requests unrelated to informed consent for cross-platform collection, third-party API use, local file creation, or browser launching. Over-broad activation increases the risk of surprising tool use and accidental disclosure of sensitive search terms to external services.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill sends user-provided keywords to a third-party service that aggregates results across many platforms, but it does not clearly disclose the privacy implications, retention risks, or that potentially sensitive terms leave the local environment. In a news-intel context, users may search for internal projects, incident names, or personal identifiers, so undisclosed external transmission is security-relevant.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The HTML root sets lang="zh-CN", which hard-codes a specific language/locale for the generated report. This is a natural-language policy concern because the file provides no user opt-in, fallback, or documented region-specific reason for restricting output to Simplified Chinese.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file instructs users to supply $REDFOX_API_KEY in request headers, which involves handling sensitive credentials. The document does not include any warning about protecting the key, avoiding client-side exposure, or not committing it to logs or source control.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This code constructs POST requests to https://redfox.hk for multiple platforms and includes the user-supplied keyword in the request body plus the API key in request headers. Although the script's purpose is data collection, the file does not explicitly warn users that their query and credentials will be transmitted to an external service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill directs the agent to save an HTML file locally and automatically open it without an explicit user warning or confirmation. Even if the content is generated from fetched data, automatic file creation and launch can surprise users, expose local browsing context, or render untrusted remote-derived content in a browser.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The file's user-facing natural-language content is entirely in Chinese, which can amount to a language policy constraint if users are not given an explicit choice or justification. No note indicates that the skill is region-specific or intentionally limited to Chinese-language users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file's natural-language documentation and user-facing messages are entirely in Chinese, presenting the tool as a Chinese-language experience by default. Under the policy, forcing a specific language without offering the user a language or locale choice can be a locale-policy violation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.