Back to skill

Security audit

blooming-elf 绽放精灵

Security checks for vulnerabilities and agentic risk

Overview

This plant-care reminder skill is mostly purpose-aligned, but it asks for persistent access to shared agent memory and recurring automations, so it should be reviewed before installation.

Install only if you are comfortable with the skill reading and updating a shared agent memory file and creating recurring reminders. Prefer running it with a dedicated plant-care config/file area, confirm any automation before creation, and avoid connecting broad knowledge-base folders unless they contain only plant-care notes.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:13
Finding

Overbroad Read and Write Access to Shared Agent Memory

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 13-15, 153-184, and 417
Vulnerability Type: Excessive access to shared persistent agent state
Risk Level: Medium

Evidence

The following is an English translation of the relevant source instructions:

markdown
## Mandatory Rule 1: Not configured → guide profile creation

**Trigger**: Read `~/.workbuddy/MEMORY.md` → the current user's
`## Green Spirit Configuration` section cannot be found, or
`Configuration Status ≠ ✅ Configured`.
markdown
## User Configuration

Storage: `~/.workbuddy/MEMORY.md`, section `## Green Spirit Configuration`
for the real user, or `## Virtual User X Green Spirit Configuration`
when matching multiple users by name.

Skill startup reads MEMORY.md → finds the corresponding configuration
section → parses its fields.
markdown
**Required final step**: Write the complete configuration into the
`## Green Spirit Configuration` section of MEMORY.md and set
`Configuration Status` to `✅ Configured`.

Technical Analysis

The Skill directs the agent to read and modify the global ~/.workbuddy/MEMORY.md file instead of using storage scoped exclusively to this Skill. A shared long-term memory file may contain information and behavioral state belonging to unrelated skills, users, or conversations.

This design violates least privilege because plant-care configuration only requires access to a dedicated configuration record. Reading the entire shared file can expose unrelated persistent information to the active model context. Editing the file also creates a risk that unrelated sections will be accidentally changed, truncated, or overwritten, particularly if the available editing tool operates on the whole file rather than enforcing section-level isolation.

The audited instructions do identify a specific section and do not direct the agent to extract secrets, overwrite unrelat ...[truncated 1875 chars]

Remediation
View remediation

Remediation Suggestions

  1. Store plant-care configuration in a dedicated Skill-owned location, such as:

    text
    ~/.workbuddy/skills/blooming-elf/config.json
    

    Apply permissions that restrict access to the owning user.

  2. Keep plant profiles and care logs in separate, explicitly selected files, as the Skill already does for operational records. Do not use global agent memory as the primary configuration database.

  3. If shared memory integration is unavoidable, expose a section-scoped storage API rather than granting raw access to the complete file. The API should only permit reads and writes to the exact blooming-elf namespace.

  4. Require explicit informed consent before the first persistent write. Identify the exact destination and data fields that will be stored.

  5. Validate all configuration values before persistence. Reject embedded section headings, control syntax, unexpected paths, or other content that could escape the intended namespace.

  6. Use atomic, compare-and-swap updates with file locking. Re-read the current version immediately before modification and preserve every unrelated byte or structured section.

  7. Create a backup before migration or modification and provide a rollback procedure if an update fails.

  8. Avoid placing credentials, API tokens, or sensitive personal information in the configuration. Store secrets through the platform's credential manager and retain only non-sensitive references.

  9. Add tests confirming that initialization and subsequent updates cannot read, modify, delete, or expose sections owned by other skills.

Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (6)

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
97% confidence
Finding

The file requires a specific Chinese opening script to be output verbatim, including exact wording and emoji, and the rest of the skill is written as mandatory Chinese interaction flows. There is no indication that users may choose another language or opt in to this locale constraint.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Several triggers such as vague everyday expressions can match casual discussion rather than a deliberate request to modify records or run automations. In a skill that reads MEMORY.md, updates documents, and can create reminders, ambiguous activation increases the chance of unintended state changes and privacy-impacting actions.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger conditions are broad enough that ordinary plant-related conversation may activate file reads, writes, automation setup, or document operations unintentionally. Over-triggering is dangerous in agentic skills because it can cause side effects without the user clearly intending to invoke the workflow.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill goes beyond plant-care advice and includes operations to retrieve document links/URLs from external knowledge-base systems. That expands the capability surface from benign reminders into data access and sharing, which can expose user documents or metadata if triggered unexpectedly or without clear consent boundaries.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

Knowledge-base and folder association features are broader than necessary for a watering assistant and create unnecessary authority over external content organization. Even if intended for convenience, this kind of cross-system document management increases the risk of unintended data exposure, misfiling, or manipulation of unrelated knowledge assets.

Content

No source excerpt is available for this finding.