Back to skill

Security audit

Summary Budget Model And New Script

Security checks for vulnerabilities and agentic risk

Overview

This skill is not outright malicious, but it can automatically save conversation-derived scripts and data models into other skill files without a clear review step.

Install only if you want an assistant to maintain budget-script and data-model skill files for you. Before using it, narrow the activation phrase, require a preview diff and explicit confirmation for every write, restrict destination files, and avoid saving secrets, personal data, internal endpoints, or unreviewed code from conversation history.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T02 · Agent Memory Poisoning

Warning
Location
SKILL.md:33
Finding

Untrusted Conversation Content Can Poison Persistent Skill State

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 33-81 and 128-134
Vulnerability Type: Persistent agent-memory poisoning through untrusted conversation content
Risk Level: Medium

Vulnerable Code Snippet

The following is an English translation of the relevant directives from SKILL.md:

markdown
Extract the following information from the conversation history:

Script operations:
- New API invocation methods
- Special data-processing logic
- New functions or utility classes
- Script templates or best practices
- Error handling and boundary cases

Data models:
- New table names and descriptions
- New field names and field types
- Relationships between fields
- Data-validation rules
- Default values and constraints

Update Platform Script Skills:

1. Read `skills/platform-script-skills/references/platform-script-templates.txt`
2. Append new script examples under the corresponding category
3. Add necessary comments and explanations
4. Save the file

Update Budget Data Model Skills:

1. Read `skills/BudgetDataModelSkills/references/data_models.json`
2. Add new data-table definitions when applicable
3. Add new fields to existing tables when applicable
4. Save the JSON file
5. Update the table descriptions in SKILL.md

The specified validation is limited to:

markdown
Before updating, validate:

1. Script syntax: Ensure that Groovy or JavaScript syntax is correct
2. API existence: Confirm that the API functions actually exist
3. Field naming: Follow platform naming conventions
4. Data types: Ensure that data types are accurate
5. No duplicates: Check whether the same content already exists

Technical Analysis

The Skill treats scripts, API examples, model definitions, field descriptions, and business rules extracted from conversation history as content suitable for persistent storage. It then directs the Agent to append that content to files ...[truncated 3184 chars]

Remediation
View remediation

Remediation Suggestions

  1. Require explicit approval before persistence

    • Generate an exact diff for every proposed change.
    • Show the destination path and all inserted content.
    • Require a separate, explicit confirmation before writing.
    • Do not treat the original summary trigger as approval of arbitrary file changes.
  2. Constrain writable destinations

    • Use a strict allowlist of destination files and directories.
    • Resolve and canonicalize paths before writing.
    • Reject absolute paths, traversal sequences, symbolic-link escapes, and writes outside the intended Skill directories.
    • Require separate authorization before modifying another Skill's SKILL.md.
  3. Apply semantic security validation

    • Reject or quarantine content containing shell execution, process creation, dynamic evaluation, arbitrary file access, unapproved network requests, credential access, or encoded payloads.
    • Detect prompt-injection phrases and instructions directed at future Agents.
    • Validate data models against a strict schema and approved field types.
    • Validate scripts against an allowlist of permitted APIs rather than merely checking whether an API exists.
  4. Keep examples inert by default

    • Store proposed scripts as quoted examples or review candidates rather than active Skill instructions.
    • Clearly separate trusted policy text from user-derived content.
    • Attach provenance, author, timestamp, approval status, and a content hash to every persisted entry.
  5. Protect sensitive information

    • Scan proposed updates for credentials, access tokens, personal data, internal endpoints, and other secrets.
    • Redact sensitive values before writing logs or backups.
    • Apply retention limits and access controls to backup and log files.
  6. Add integrity and rollback controls

    • Validate the complete resulting file after modification.
    • Maintain immutable audit ...[truncated 423 chars]
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (13)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The natural-language content of the skill is entirely in Chinese and presents commands and responses only in Chinese, with no indication that users may choose another language. Under the policy, forcing a specific language without opt-in is a locale/language policy issue unless the restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrase "更新技能" is extremely broad and can match ordinary user requests that are not intended to modify persistent skill files. Because this skill performs write operations to other skills and reference files, unintended activation could cause unauthorized or accidental persistence of conversational content into trusted artifacts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The phrase "记录新的脚本写法" is broad enough to be invoked during normal discussion of code examples, causing the skill to treat untrusted conversational content as approved material for persistent storage. In this skill, that behavior is risky because it can poison shared script references and propagate unsafe patterns into future agent behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The trigger "保存这个数据模型" is ambiguous and could be used in ordinary conversation when the user merely wants to discuss or draft a model, not persist it into skill files. Since the skill writes into JSON references and documentation, ambiguous activation creates a pathway for accidental data corruption, model poisoning, or persistence of incorrect schema details.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest description says the skill activates when the user issues a generic 'summary conversation content' command, which is an overly broad trigger for a skill that can update other skills and persistent knowledge artifacts. Because its function includes extracting information from conversation history and modifying related skills, accidental or ambiguous activation could cause unauthorized knowledge propagation, prompt contamination, or unintended modification of trusted artifacts.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrase 【总结对话内容】 is broad and can easily overlap with ordinary user requests to summarize a conversation. In a skill that updates other skill files, this creates an unsafe ambiguity where a benign summarization request could unintentionally activate write/update behavior and modify persistent artifacts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The instructions tell the agent to update skill files and record changes in the log, but they do not require notifying the user that persistent files will be modified. This can lead to silent state changes, making prompt-triggered updates harder for users to anticipate, review, or stop.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases are broad and overlap with normal conversational intents such as 'update skill' or 'record this script', which can cause the skill to activate when the user did not intend a persistent write operation. In this skill, unintended activation is especially risky because activation leads to reviewing conversation history and modifying other skill files, logs, and backups.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The document states that the AI will automatically update files, record logs, and create backups, but it does not provide an explicit user warning or consent checkpoint before local file modification. This creates a safety issue because users may believe they are requesting a summary while the system performs persistent state changes across multiple files.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

Automatically reviewing conversation history and recording extracted content into persistent skill files and logs can store sensitive or proprietary user-provided information beyond the original conversation context. This is dangerous because natural-language content may contain secrets, internal code, schema details, or business data that become durable artifacts and may later be exposed or reused in unrelated sessions.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The examples explicitly instruct the AI to copy user-provided table definitions, field details, and source conversation content into persistent reference files. In context, this normalizes storing potentially confidential schema and business information without access control, minimization, or consent safeguards, increasing the chance of long-term data leakage.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The natural-language metadata and description are entirely in Chinese, with no indication that users may choose another language or that the skill is intentionally limited to a Chinese-language audience. Under the policy, forcing a specific language without opt-in can be a locale/language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

All headings, instructions, and the trigger phrase are written only in Chinese, which signals a fixed language/locale expectation. The file does not offer users a language choice or state that the skill is intentionally limited to a Chinese-speaking context.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.