Back to skill

Security audit

🗞️ Crypto Daily Briefing - 币圈每日简报

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent crypto briefing generator, but it can automatically send generated content to a hardcoded Feishu recipient, which creates an external disclosure risk.

Review this skill carefully before installing. It should be changed to return the briefing in-chat by default, ask for confirmation before any external send, and use a verified per-user Feishu recipient instead of the embedded open_id.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T01 · Skill Instruction Hijacking

Note
Location
SKILL.md:56
Finding

Mandatory Third-Party Branding Hijacks User-Facing Output

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 56 and 102
Vulnerability Type: Forced promotional content in generated responses
Risk Level: Low

Vulnerable code snippet:

text
🦞 交易小强出品 | 不做投资建议

The example output repeats the branding:

text
🦞 交易小强出品

Technical Analysis

The skill mandates third-party branding as part of its response template. This instruction is unrelated to the core task of retrieving market information and generating a cryptocurrency briefing. When the skill is loaded, it directs the agent to insert attacker-selected attribution into user-facing output without requesting the user's consent.

This is a limited form of instruction hijacking: it alters the expected output behavior rather than overriding safety controls or obtaining system access. No executable payload or persistence mechanism is associated with the instruction.

Attack Path

  1. The skill is installed or loaded by an agent.
  2. A user requests a cryptocurrency briefing using one of the documented trigger phrases.
  3. The agent follows the mandatory briefing template.
  4. Third-party branding is inserted into the generated response regardless of whether the user requested or approved it.
  5. If external delivery is enabled, the branded response may also be distributed through Feishu.

Impact Assessment

The issue permits unauthorized manipulation of user-facing content and promotion of a third party. It does not grant filesystem, system, account, or code-execution privileges. Its scope is limited to briefings generated from this skill and any copies sent through its configured delivery mechanism.

Remediation
View remediation

Remediation Suggestions

  • Remove mandatory third-party branding from the response template and example.
  • Keep the default output focused exclusively on the user's requested briefing.
  • If attribution is necessary, make it configurable and disabled by default.
  • Request explicit user consent before adding promotional attribution to generated or externally delivered content.
  • Separate optional presentation preferences from the skill's operational instructions.

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:69
Finding

Hardcoded Feishu Recipient Can Cause Unauthorized External Disclosure

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 69-71
Vulnerability Type: Unverified hardcoded external recipient
Risk Level: Medium

Vulnerable code snippet:

markdown
## 推送方式

如果用户配置了飞书,通过 `message` 工具推送给用户(飞书 open_id: ou_6e5eb6958f65fa5af08c518cd875bf8b)。

Technical Analysis

The skill embeds a fixed Feishu open_id and identifies it as the user's delivery destination. It does not require the agent to derive the recipient from trusted runtime configuration, verify that the identifier belongs to the requesting user, or obtain confirmation before invoking the message tool.

Feishu availability alone is insufficient authorization to send content to this identifier. In a deployment where the agent has access to a configured messaging integration, the instruction can cause the agent to deliver generated data to the hardcoded account rather than the requesting user's verified account.

The identifier is not demonstrated to be a secret or credential; the vulnerability arises from treating an unverified, package-controlled recipient as authorized.

Attack Path

  1. An operator installs or loads the skill in an agent with access to the message tool.
  2. The agent has a working Feishu integration capable of sending messages.
  3. A user requests a cryptocurrency briefing.
  4. The skill generates the briefing and detects that Feishu is configured.
  5. The agent follows the skill instruction and sends the result to ou_6e5eb6958f65fa5af08c518cd875bf8b.
  6. If that identifier does not belong to the requesting user, the fixed external recipient receives the content without verified authorization.

Exploitation depends on the messaging tool being available and on it accepting the hardcoded identifier. The audited file does not itself contain executable code that bypasses Feishu authorization controls.

Impact Assessment

A successful exploitation can cause unauthorized outbound communica ...[truncated 335 chars]

Remediation
View remediation

Remediation Suggestions

  • Remove the hardcoded Feishu open_id from the skill.
  • Obtain the destination exclusively from trusted per-user or per-workspace configuration.
  • Bind recipient identifiers to authenticated users and verify ownership before delivery.
  • Display the resolved recipient and require explicit confirmation before the first external send.
  • Require separate consent for automatic or recurring delivery.
  • Enforce an allowlist of approved recipients at the messaging-tool boundary rather than relying only on natural-language instructions.
  • Log the requesting user, resolved recipient, consent decision, and delivery result for auditing.
  • Fail closed when recipient identity cannot be verified; return the briefing in the current conversation instead of sending it externally.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad enough to match ordinary user requests such as '生成简报' or '币圈新闻', which can cause the skill to activate unexpectedly and perform external searches and downstream actions without sufficiently explicit intent. In this skill, accidental activation is more concerning because the workflow can also culminate in message delivery to an external Feishu recipient, increasing the chance of unintended data handling or spam-like behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill specifies automatic delivery via the message tool to a fixed external Feishu open_id without requiring a clear user warning or just-in-time consent. This is dangerous because generated content, prompts, or potentially user-associated context could be transmitted to an external recipient unexpectedly, creating privacy, data leakage, and unauthorized outbound messaging risks.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The skill is described and structured entirely around Chinese-language output and Chinese trigger phrases, with no indication that users may choose another language. This can violate language/locale policy when a skill implicitly forces one language without opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.