Back to skill

Security audit

food-expiry-reminder

Security checks for vulnerabilities and agentic risk

Overview

This is a local food-expiry tracker that stores food inventory in one JSON file and does not show hidden, deceptive, network, credential, or destructive behavior.

Install if you are comfortable with a Chinese-language local food tracker that keeps inventory in data/food_data.json. Back up the JSON file before manual edits or deletions, and only add the documented cron job if you intentionally want recurring daily reminders.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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 (13)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill performs file read/write operations against a local JSON datastore but does not declare any tool scope, permissions, or allowed-tools boundaries. This creates an authorization ambiguity where an agent may execute filesystem-capable actions without explicit least-privilege constraints, increasing the risk of unintended file access or modification beyond the intended data file.

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’s natural-language content, including the manifest description and all user-facing instructions, is presented only in Chinese. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly justified, which is not stated here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file presents all user-facing guidance, commands context, and outputs exclusively in Chinese. Under the policy, forcing a specific language without user opt-in or a documented region-specific justification is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file describes modifying data/food_data.json directly and deleting items from the foods array, which can affect user data integrity. While backup advice appears elsewhere in the FAQ, these instructions themselves do not warn that manual edits or deletions can corrupt the JSON file or permanently remove records.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/examples.md (reported line 222)May include surrounding context.

A: 可以使用cron任务:

bash
# 编辑crontab
crontab -e

# 添加以下行(每天上午9点检查)
0 9 * * * cd /path/to/skills/food-expiry-reminder && python scripts/get_reminders.py

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/faq.md (reported line 63)May include surrounding context.

A: 可以使用cron任务:

bash
# 编辑crontab
crontab -e

# 添加以下行(每天上午9点检查)
0 9 * * * cd /path/to/skills/food-expiry-reminder && python scripts/get_reminders.py

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This code file contains natural-language strings exclusively in Chinese, including the module docstring and all user-facing print messages. Under the policy rule for language or locale constraints, forcing a specific language without user opt-in is a natural-language policy violation unless the locale limitation is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code file contains natural-language strings and docstrings exclusively in Chinese, beginning with the module description. The policy requires flagging language or locale constraints when the skill forces a specific language without user opt-in, and this file provides no alternative language option or justification for a Chinese-only interface.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

This JSON data uses Chinese-language values for food names and locations (for example, "牛奶", "冰箱", and "水果篮") without any indication that the skill offers a language choice or that it is intentionally limited to a Chinese locale. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern applicable to all file types.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This markdown file is written entirely in Chinese, including headings, field descriptions, and operational guidance, with no indication that the user can choose another language or that the skill is region-specific. Under the language/locale policy, a skill should not implicitly force a single language unless the constraint is explicitly justified or optional.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file presents all user-facing instructions in a single language and does not indicate that users can choose another language or that the skill is intentionally limited to a Chinese-speaking audience. Under the stated policy, forcing a specific language without opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code presents its description, status messages, and reminders entirely in Chinese, including the module docstrings and all printed output. Because the file provides no user opt-in or configurable locale selection, it may violate a language/locale policy requiring user choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
96% confidence
Finding

This Python file contains natural-language docstrings, comments, and printed output entirely in Chinese, with no indication that the skill is region-specific or that users can opt into this locale. Under the language/locale policy, forcing a specific language without user choice is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.