Back to skill

Security audit

Pantry

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local pantry/home logging tool with disclosed local storage, but users should avoid entering sensitive information and be careful with exported CSV files.

Install only if you are comfortable with pantry and household notes being saved as plain local log files in ~/.local/share/pantry. Avoid storing sensitive schedules, financial details, credentials, or private household information, and treat CSV exports carefully before opening them in spreadsheet software.

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 (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:6
Finding

Pantry Data Is Created Without Restrictive Permissions

Content
View full analysis
> "$DATA_DIR/add.log" local total=$(wc -l < "$DATA_DIR/add.log") echo " [Pantry] add: $input" echo " Saved. Total add entries: $total" _log "add" "$input" ``` ### Technical Analysis The script creates its data directory, history files, record files, and exported files without setting a restrictive process umask or explicitly applying secure permissions. Their effective permissions therefore depend entirely on the user's ambient umask. On a system with a permissive umask, other local users may be able to traverse the pantry directory and read its files. These records can contain user-provided inventory details, schedules, reminders, costs, shopping information, and activity history. The same issue applies to generated JSON, CSV, and text exports. This does not grant remote access or elevated privileges by itself. Exploitation requires access through another local account or process whose permissions allow it to read the affected files. ### Attack Path 1. The victim runs a record-creation command such as `pantry schedule ` or `pantry cost `. 2. The script creates `~/.local/share/pantry` and its files using permissions derived from the victim's ambient umask. 3. If that umask permits group or world access, another local account enumerates the victim's pantry directory. 4. The attacker reads record files, `history.log`, or generated exports. 5. The attacker obtains the household, schedule, cost, reminder, or other information entered by the victim. ### Impact Assessment The vulnerability can cause local confidentiality loss within the p ...[truncated 258 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:70
Finding

CSV Export Allows Spreadsheet Formula Injection

Content
View full analysis
"$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 ;; ``` ### Technical Analysis The `val` field is derived from user-controlled pantry entries and is written directly into a CSV cell. The implementation performs neither standards-compliant CSV quoting nor neutralization of formula prefixes. If a value begins with a character interpreted by spreadsheet applications as a formula marker—commonly `=`, `+`, `-`, or `@`—opening the exported file may cause the application to evaluate it as a formula. The precise effect depends on the spreadsheet application, version, security policy, and user prompts. The implementation also fails to quote commas, double quotes, carriage returns, and newlines. An attacker can therefore alter the apparent row and column structure of the export, place controlled content in additional cells, or produce malformed CSV. ### Attack Path 1. An attacker supplies or persuades the victim to save a pantry entry beginning with a spreadsheet formula marker, for example a value shaped like `=HYPERLINK(...)`. 2. The entry is stored unchanged in one of the pantry log files. 3. The victim runs `pantry export csv`. 4. The script copies the attacker-controlled value directly into `export.csv`. 5. The victim opens the export in spreadsheet software. 6. If the spreadsheet evaluates the cell, the formula may display deceptive content or initiate an external request, subject to the spreadsheet's security controls. ### Impact Assessment Successful exploitation occurs in the context of the user opening the CSV file, not in the shell script itself. Pot ...[truncated 328 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Tp4

High
Category
MCP Tool Poisoning
Confidence
92% confidence
Finding

The code is broadly pantry-themed, so there is some overlap with the declared description: commands like add, inventory, schedule, remind, and checklist could support pantry organization. However, the implementation is materially broader and more generic than described. It acts as a multi-category local logging toolkit, accepting arbitrary free-text input for many categories not mentioned in the description, and provides additional capabilities such as exporting all data, searching logs, viewing recent history, and generating stats/status output. These are substantive capabilities, not mere implementation details. Therefore the declared purpose does not accurately represent the full behavior of the code.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest describes a pantry-focused organizer for inventory, expiry dates, shopping lists, and restock reminders. The exposed command set goes materially beyond that scope into broad home-toolkit journaling and reporting categories that are not clearly tied to pantry management, indicating a mismatch between declared purpose and actual behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

User-supplied entries are written verbatim to persistent log files under the user's home directory, and mirrored into history.log, without any notice, retention limit, masking, or access hardening. Pantry data can reveal shopping habits, schedules, costs, and household patterns, so silent persistence increases privacy risk if the account, backups, or local files are later accessed by others.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill advertises offline/local storage and export, but automatic timestamped activity logging is not clearly disclosed up front to users. This can create a privacy risk because users may enter sensitive household information assuming only the primary record is stored, while a separate history trail preserves more metadata than expected.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file comment says "Pantry — home tool," and the help text further says "home toolkit," framing the script as a general-purpose household utility rather than a pantry stock and reminder skill. This actively diverges from the manifest's pantry-specific intent.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The user-facing help banner is explicit documentation of intended behavior. Calling the tool a "home toolkit" contradicts the manifest's narrower pantry-management scope and suggests a broader intent than declared.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.