Back to skill

Security audit

Plant

Security checks for vulnerabilities and agentic risk

Overview

This is a local plant-care logging skill with some broad wording and export-safety weaknesses, but no hidden network access, credential access, destructive behavior, or privilege escalation.

Install only if you are comfortable with a local command-line tool storing plant or household-care notes under ~/.local/share/plant. Avoid putting sensitive personal or financial details into records, and be careful opening CSV exports in spreadsheet software because exported values are not safely escaped.

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
scripts/script.sh:55
Finding

Unescaped Record Data Enables Export and Terminal Injection

Content
View full analysis
"$out" local first=1 for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do [ $first -eq 1 ] && first=0 || echo "," >> "$out" printf ' {"type":"%s","time":"%s","value":"%s"}' "$name" "$ts" "$val" >> "$out" done < "$f" done echo "\n]" >> "$out" ;; csv) echo "type,time,value" > "$out" for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do echo "$name,$ts,$val" >> "$out"; done < "$f" done ;; ``` Search and recent-activity functions also print stored content directly to the terminal: ```bash _search() { local term="${1:?Usage: plant search }" echo "Searching for: $term" for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local m=$(grep -i "$term" "$f" 2>/dev/null || true) if [ -n "$m" ]; then echo " --- $(basename "$f" .log) ---" echo "$m" | sed 's/^/ /' fi done } _recent() { echo "=== Recent Activity ===" tail -20 "$DATA_DIR/history.log" 2>/dev/null | sed 's/^/ /' || echo " No activity yet." } ``` Representative record ingestion stores input without validation ...[truncated 3715 chars]
Remediation
View remediation
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 (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented capability set materially exceeds the manifest description of a narrow plant-care scheduling skill. This mismatch can cause over-broad invocation and user misunderstanding, especially because the skill exposes generic logging, search, export, inventory, and reporting functions over local data, which increases the chance of collecting or disclosing data beyond what the user expected.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The activation description is broad and lacks precise boundaries, which can cause the skill to trigger for loosely related organizing or household tasks. In an agent ecosystem, ambiguous routing increases the chance that user data is sent to a tool with broader storage/export behavior than expected.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The marketing text broadens the skill from plant-care scheduling into generic household organization and activity logging. While not directly malicious, this scope expansion weakens user consent and predictability, making it easier for the skill to be used in contexts where users did not intend broader recordkeeping.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The command list includes generic capabilities such as export, search, cost tracking, reports, logs, and inventory that are not reflected in the narrow manifest description. These features increase the attack surface for misuse of local data because a user or calling agent may invoke broader data-handling operations than the skill appears to authorize.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script exposes a broad, generic logging surface (for example cost, usage, checklist, log, report, tips) that goes well beyond the stated plant-care scope. In an agent context, this can be abused to collect and persist arbitrary user-provided household information under a benign plant-care label, creating unnecessary data collection and scope creep.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The statement that the tool works entirely offline and data never leaves the machine is in tension with the same document directing users to external URLs for homepage, source, and feedback. While this file does not show executable network code, the documentation's privacy/offline claim is stronger than the overall documented behavior presented to the user.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

Describing the tool as a generic 'home tool' contradicts the declared plant-care purpose and weakens trust boundaries for users and host agents. Misleading documentation can facilitate inappropriate invocation and normalize broader data handling than users expect.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The help text advertises a generic toolkit-style command surface, including broad commands like report, usage, cost, and log, which is inconsistent with a narrowly scoped plant-care skill. In an agent ecosystem, misleading capability descriptions increase the chance of overbroad use and collection of unrelated user data.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.