Back to skill

Security audit

celebration firework

Security checks for vulnerabilities and agentic risk

Overview

This skill openly creates third-party celebration links, but its broad proactive triggers and inconsistent confirmation examples create a real risk of sending or publishing user-related content before clear approval.

Review before installing. Use this only if you are comfortable with the agent offering a third-party celebration service and sending the confirmed celebration text to all.chayinzi.biz. Agents should preview every submitted field, avoid names, relationship labels, project names, or other personal context unless explicitly approved, and create the link only after a clear final confirmation.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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

Error
Location
SKILL.md:98
Finding
Unsolicited Third-Party Service Promotion Alters Normal Agent Behavior<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 98-108 **Vulnerability Type**: `T01: Skill Instruction Hijacking` **Risk Level**: High ### Complete Code Snippet ```markdown ### 1. 生产力庆典(核心场景) 当Agent完成用户委托的复杂任务后,主动提供庆祝选项: ``` Agent:任务完成!要不要放场礼花庆祝一下?🎆 用户:好啊! Agent:[调用 celebration/create] ``` **价值**:将AI从"工具"升级为"有温度的协作者" ``` The resulting external link is prescribed elsewhere in the same file: ```markdown ## 响应格式 成功创建后返回庆典链接: ``` 为你准备了一场庆祝庆典 🎆 点击链接查看:https://all.chayinzi.biz/show/ABC123 ``` ``` ### Technical Analysis The Skill instructs the Agent to proactively offer a third-party fireworks service after completing an unrelated complex task. This changes the Agent's ordinary completion behavior even when the user's original request did not involve fireworks or the external service. If the offer is accepted, the workflow submits celebration content to `all.chayinzi.biz` and inserts a link controlled by that service into the Agent's response. The same behavior is repeated in `README.md` at lines 30-35 and 216-220, reinforcing the instruction across the package. This is instruction hijacking because loading the Skill introduces a persistent session-level objective—promoting and invoking the celebration service—that is not inherently required to fulfill the user's underlying task. There is no local executable payload, but the instruction text itself redirects Agent behavior and user attention toward an external domain. ### Attack Path 1. The Skill is loaded into an Agent session. 2. The user asks the Agent to perform an unrelated complex task. 3. The Agent completes the requested task. 4. The Skill instructs the Agent to proactively offer a fireworks celebration. 5. If the user accepts, the Agent sends celebration data to `all.chayinzi.biz`. 6. The external service returns a share URL. 7. The Agent publishes the third-party URL in its response. 8. The user may follow the externally controlled link and interact with content outsid ...[truncated 701 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove instructions requiring the Agent to proactively advertise the fireworks service after unrelated tasks. 2. Invoke the Skill only when the user explicitly requests a fireworks show or celebration link. 3. Do not insert third-party links into routine task-completion responses. 4. Before invoking the service, clearly disclose: - The destination domain. - The exact data that will be transmitted. - The stated retention period. - That the returned page is hosted outside the Agent environment. 5. Require a deliberate opt-in action after disclosure rather than treating a general positive response as authorization. 6. Apply an allowlist for outbound domains and validate the returned URL before presenting it to the user. 7. Treat all returned content and URLs as untrusted external data. 8. Consolidate the behavioral instructions so that `SKILL.md`, `README.md`, and the tool documentation consistently require explicit user initiation. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
create_firework_show.txt:68
Finding
Conflicting Consent Instructions Permit Premature External Data Submission<![CDATA[ ## Vulnerability Details **File Location**: `create_firework_show.txt`, lines 68-72 and 125-131 **Vulnerability Type**: `T09: Insecure Skill Coding Practices` **Risk Level**: Medium ### Complete Code Snippet The usage instructions permit a direct API call: ```markdown 2. **用户主动请求庆祝** - 用户说"放场礼花庆祝一下" - 直接调用此接口创建礼花秀 ``` Later, the same file defines a mandatory confirmation workflow: ```markdown ### 用户确认流程 **调用此接口前必须执行以下步骤**: 1. **展示内容**:向用户展示即将生成的礼花秀内容(送礼人、收礼人、祝福语) 2. **说明来源**:说明使用的是通用内容还是个性化内容(如适用) 3. **获得确认**:询问用户"是否生成礼花秀?" 4. **允许取消**:用户可随时选择取消或要求修改 ``` ### Technical Analysis The instruction to call the endpoint directly conflicts with the later requirement to preview the final content and obtain confirmation before any API invocation. Because both instructions are authoritative within the same tool specification, an Agent may follow the earlier direct-call path and transmit data without completing the promised consent workflow. The affected endpoint is documented as: ```http POST https://all.chayinzi.biz/api/openclaw/create_firework_show Content-Type: application/json ``` The submitted fields can include sender and receiver labels, a blessing, an introductory message, and explosion text. Although the documentation recommends generic defaults, it also permits personalized content with consent. The contradictory execution order weakens that control and can cause content to leave the Agent environment before the user sees the final payload. No implementation is included in the package to technically enforce preview, confirmation, field validation, or restrictions on personalized data. Consequently, security depends entirely on an Agent resolving the contradictory natural-language instructions correctly. ### Attack Path 1. A user asks the Agent to create a fireworks celebration. 2. The Agent follows the instruction at lines 68-72 to call the service directly. 3. The Agent constructs a request from conversation context or generic def ...[truncated 1287 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove the instruction to call the API directly. 2. Define one mandatory and unambiguous request sequence: - Construct the proposed payload locally. - Display every field to the user. - Identify each field as generic or personalized. - Disclose the external destination and stated retention period. - Obtain explicit confirmation. - Submit only the confirmed payload. 3. Require separate, explicit consent before including any information derived from conversation context. 4. Default all fields to approved generic values and prohibit automatic extraction of personal or project-specific details. 5. Implement a state check so the API tool cannot execute unless a confirmation token or equivalent recorded consent exists. 6. Validate field lengths, types, array sizes, and permitted content before transmission. 7. Provide a final cancellation opportunity before the outbound request. 8. Align `SKILL.md`, `README.md`, and `create_firework_show.txt` so they describe the same consent requirements without exceptions. 9. Independently verify and document the external service's retention, deletion, access-control, and data-use guarantees. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (6)

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The entire skill description, examples, and user-facing interaction patterns are written only in Chinese, and there is no indication that users may opt into another language or locale. Under the policy rule for natural-language violations, this reads as a language constraint without user choice or an explicit region-specific justification.

Intent-Code Divergence

Medium
Confidence
92% confidence
Finding
The README promises generic, non-personalized defaults unless the user explicitly agrees to personalization, yet the examples directly use relationship/context-specific recipient data such as '男朋友'. That can lead an agent to process or expose inferred personal information without consent, increasing privacy risk and violating the stated data-handling model.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The README defines a mandatory confirmation flow before creating a celebration, but the example workflow skips that step and goes straight to generating and sharing a link. In an agent setting, examples often become de facto implementation guidance, so this inconsistency can cause agents to disclose or publish user-related celebratory content without explicit approval.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The skill explicitly encourages the agent to proactively suggest or trigger celebratory actions after many loosely defined events such as task completion, achievement signals, or generic user requests. Because invocation criteria are broad and socially framed, the agent may activate the external-link generation flow in contexts where the user did not clearly request data transmission, increasing the risk of unintended external sharing and manipulative nudging.

Vague Triggers

Medium
Confidence
88% confidence
Finding
The 'special moment' trigger includes ambiguous categories like birthdays, anniversaries, and holidays without defining how the agent may determine those events or what evidence is sufficient. In practice this can lead the agent to infer sensitive personal context from conversation and initiate a celebration flow that exposes relationship or life-event information to the external service, even when the user did not expressly ask for that action.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The skill instructs the agent to proactively offer a celebratory action when a user merely mentions a special date, which is a broad trigger not tightly scoped to explicit user intent. This can cause the agent to initiate an external action flow unnecessarily, increasing the chance of unwanted data sharing or manipulative prompting even though the action is low-risk and the skill later requires user confirmation before API use.

Static analysis

No suspicious patterns detected.