Back to skill

Security audit

社区热点痛点分析

Security checks for vulnerabilities and agentic risk

Overview

This is a prompt-only community analysis skill with minor scoping and prompt-injection hygiene issues, but no hidden execution, persistence, credential access, or destructive behavior.

Use this if you want a Chinese FridayParts community-insight workflow. Review outputs before passing topics to downstream content skills, treat community posts as untrusted source material, and inspect any external crawler such as fp_weekly_crawl.sh separately before running 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
SKILL.md:38
Finding

Untrusted Community Content Can Manipulate Skill Instructions

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:38-39, 55-64 and identical duplicate skill/SKILL.md:38-39, 55-64
Vulnerability Type: Prompt injection through untrusted external content
Risk Level: Medium

Relevant code segment, translated into English from the source:

text
Input format:
Reddit and forum data collected by Agent-Reach in JSONL or Markdown,
including titles, bodies, and comments.
A batch of popular post titles and comment summaries may also be pasted manually.

Input:
Reddit and forum data collected by Agent-Reach in JSONL or Markdown,
including titles, bodies, and comments, or manually pasted post titles
and comment summaries.

Weekly Top Five Topics:
- Estimate the approximate number of posts when an exact count is unavailable.
- Provide representative examples by quoting real post titles.

The relevant source does not establish a trust boundary between the Skill's governing instructions and the imported post titles, bodies, comments, or manually pasted text.

Technical Analysis

The Skill processes content collected from Reddit and external forums, as well as arbitrary text pasted by a user. These data sources are attacker-controlled and may contain natural-language instructions such as requests to ignore the Skill prompt, alter compliance constraints, fabricate conclusions, or reproduce unrelated content.

The System Prompt does not instruct the model to:

  • Treat imported records exclusively as untrusted data.
  • Ignore commands, role declarations, or policy statements embedded in records.
  • Place records inside explicit and reliably identifiable data delimiters.
  • Validate each input against a restricted schema.
  • Prevent imported content from overriding compliance and output requirements.
  • Safely quote or neutralize adversarial text copied from source titles.

The requirement to quote real post titles further increases the possibility that adversarial te ...[truncated 1748 chars]

Remediation
View remediation

Remediation Suggestions

  1. Add an explicit trust-boundary rule to the System Prompt stating that all post titles, bodies, comments, metadata, links, and manually pasted records are untrusted data and never instructions.
  2. Require the model to ignore any role declarations, commands, requests to reveal context, policy changes, output-format changes, or compliance overrides found inside imported records.
  3. Wrap imported records in explicit data delimiters and state that content inside those delimiters may only be classified, summarized, counted, and quoted safely.
  4. Parse data into a restricted schema containing fields such as source, title, body, comments, score, and timestamp. Reject or flag malformed records rather than placing arbitrary text into the prompt.
  5. Add a rule that quoted titles must be treated as inert text. Escape or truncate titles containing instruction-like language, markup, or control tokens.
  6. Require every generated claim, count, quotation, and trend conclusion to be traceable to one or more source records. Clearly label estimates and avoid inventing missing data.
  7. Place compliance requirements after the untrusted data or otherwise ensure they remain authoritative, and explicitly state that source content cannot modify them.
  8. Add adversarial tests containing instructions such as attempts to override the report format, suppress safety warnings, reveal hidden prompts, or inject downstream instructions.
  9. Apply the same corrections to both SKILL.md and skill/SKILL.md so the root copy and the importable copy cannot diverge.
  10. Before passing generated topics to downstream Skills, review or filter the output for copied instructions, unsupported claims, unsafe repair advice, and omitted compliance notices.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (9)

Tp2

High
Category
MCP Tool Poisoning
Confidence
85% confidence
Finding

Mixing characters from multiple Unicode scripts in a single identifier is a common technique to create visually ambiguous tool names.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill documentation is presented as a Chinese-only title and the rest of the README is entirely in Chinese, with no indication that users may choose another language or that the locale restriction is required for a region-specific purpose. This creates a natural-language policy concern because it effectively imposes a language constraint without user opt-in.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger list contains broad phrases such as '用户痛点' and '选题分析' that could activate the skill for ordinary requests beyond the intended Reddit/forum analysis workflow. Over-broad activation can cause unintended routing of user data into this skill, producing irrelevant behavior, policy mismatches, or unexpected downstream content-generation actions in a larger agent pipeline.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The prompt mandates Chinese output without checking the user's language preference or obtaining opt-in. This can create safety and usability issues if the surrounding system or user expects another language, increasing the chance of misunderstanding compliance warnings, maintenance cautions, or operational guidance.

Content

No source excerpt is available for this finding.

External Model or Provider Selection

Medium
Category
Excessive Agency
Confidence
90% confidence
Finding

Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.

Content

Scanner excerpt · SKILL.md (reported line 11)May include surrounding context.

md
和选题可直接喂给 fp_youtube_script 做视频脚本、fp_blog_to_social 做文章。
  自动标注合规风险(如 DPF delete)。是"挖痛点→出内容"流水线的源头。
  Use when: 分析 Reddit/论坛热帖 / 挖掘用户痛点 / 内容选题分析。
model: claude-sonnet-4-6
temperature: 0.6
max_tokens: 2000
triggers:

External Model or Provider Selection

Medium
Category
Excessive Agency
Confidence
90% confidence
Finding

Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.

Content

Scanner excerpt · skill/SKILL.md (reported line 11)May include surrounding context.

md
和选题可直接喂给 fp_youtube_script 做视频脚本、fp_blog_to_social 做文章。
  自动标注合规风险(如 DPF delete)。是"挖痛点→出内容"流水线的源头。
  Use when: 分析 Reddit/论坛热帖 / 挖掘用户痛点 / 内容选题分析。
model: claude-sonnet-4-6
temperature: 0.6
max_tokens: 2000
triggers:

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The triggers "用户痛点" and "选题分析" are broad, generic phrases that could apply to many unrelated analysis or content tasks, making unintended invocation more likely. The file does not provide exclusion conditions or negative examples to clarify when this skill should or should not activate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The instruction "中文输出(运营团队阅读)" imposes a fixed language requirement in the prompt. Under the policy, forcing a specific language without user opt-in or a clearly documented justified locale constraint is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

该文件全篇以中文提供操作说明,未见任何提示说明用户可选择其他语言,或该技能/文档仅面向中文使用者。根据语言/locale 政策,若未提供用户选择或合理限定,强制单一语言可能构成自然语言层面的政策问题。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.