Back to skill

Security audit

eatsth-by

Security checks for vulnerabilities and agentic risk

Overview

This health diet skill is mostly coherent, but it stores sensitive personal health details in plain local Markdown files without clear consent, retention, or deletion controls.

Review this skill carefully before installing. It is not showing code execution or exfiltration behavior, but it asks the agent to keep health and food records in plain local Markdown files. Only use it if you are comfortable with those files containing symptoms, medical findings, diet restrictions, lifestyle details, timestamps, and inventory history; consider adding explicit consent, review, correction, deletion, and protected-storage rules first.

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
SKILL.md:12
Finding
Plaintext Persistence of Sensitive Health Information## Vulnerability Details **File Location**: `SKILL.md`, lines 12–13 **Vulnerability Type**: Plaintext storage of sensitive personal and health data **Risk Level**: Medium **Vulnerable instruction:** ```text 当用户需要查询或记录健康或体检问题时,更新并保存[本技能目录下的 references/my-healthy.md](相对路径:skills/eatsth-by/references/my-healthy.md),如果没有该文件则自动生成,登记时需包含登记日期和时间信息。 个人健康记录可能包括:体检或已知的异常身体状况或症状;以往或新近发现的禁忌或不喜欢吃的食物;个人生活习惯等一切可能影响健康饮食推荐的个人因素。 ``` ### Technical Analysis The Skill explicitly directs the Agent to create or update `references/my-healthy.md` with medical examination results, known health abnormalities, symptoms, dietary restrictions, food preferences, lifestyle information, and timestamps. A Markdown file provides no encryption or field-level protection by itself. Although the Skill states elsewhere that health-record functionality is available only in the main session, it does not define or enforce filesystem access controls, encryption, data minimization, explicit consent, retention limits, secure deletion, or exclusion from source control and backups. A session-level instruction is not equivalent to a technical storage boundary. Exploitation does not grant new system privileges. It allows any actor or process that already has read access to the Skill directory, copied artifacts, backups, or repository history to obtain sensitive health information stored there. ### Attack Path 1. A user supplies symptoms, examination results, dietary contraindications, or lifestyle information. 2. Following the Skill instruction, the Agent writes that information and its timestamp to `references/my-healthy.md`. 3. The plaintext file remains in the Skill directory without a specified expiration or secure-deletion policy. 4. Another local process, tool, session, backup operator, or repository user with access to that directory or a copy of it reads the record. 5. The exposed information can be used for privacy invasion, profiling, discrimination, socia ...[truncated 709 chars]
Remediation
## Remediation Suggestions 1. Obtain explicit, informed user consent before persisting any health information, and explain what will be stored, where it will be stored, and for how long. 2. Store only the minimum information necessary for dietary recommendations. Avoid retaining raw examination reports or unrelated medical details. 3. Replace the Markdown file with an approved protected data store that supports encryption at rest and authenticated, least-privilege access. 4. If local storage is unavoidable, place records outside the distributable Skill package, apply restrictive owner-only permissions, and encrypt the contents using managed keys. 5. Prevent generated records from entering source control, package archives, telemetry, logs, and unprotected backups. 6. Define retention limits and provide user-accessible review, correction, export, and secure-deletion mechanisms. 7. Enforce the main-session restriction through technical authorization checks rather than relying solely on natural-language instructions. 8. Avoid recording precise timestamps unless they are necessary for the stated functionality. 9. Document the threat model and verify that subprocesses, tools, and unrelated sessions cannot retrieve the protected record.
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 (4)

Missing User Warnings

High
Confidence
97% confidence
Finding
The skill directs the agent to update and save personal health records, including symptoms, medical findings, contraindications, and lifestyle factors, into a persistent file without requiring an explicit disclosure that this sensitive data will be stored. Because health information is highly sensitive, silent persistence creates privacy and consent risks and may cause users to disclose data they did not realize would be retained.

Vague Triggers

Medium
Confidence
89% confidence
Finding
The skill's activation is defined in broad natural-language terms like when a user wants to query or record health or food information, without clear trigger phrases, exclusion rules, or authorization checks beyond a prose statement about 'main session'. This can cause the skill to activate in unintended contexts and perform sensitive reads or writes on personal records when the user's intent is ambiguous.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill allows food records to be removed when items are consumed, but it does not warn the user that this action deletes information from persistent storage or offer confirmation. This can lead to unintended data loss, especially if the agent infers an item is finished from conversational context and deletes it automatically.

Vague Triggers

Low
Confidence
84% confidence
Finding
The diet recommendation section is scoped broadly to 'when the user needs you to recommend diet' and then instructs the skill to consult health records and food inventory, but it does not tightly constrain when this should happen or what consent is required. In practice, this ambiguity could lead to over-collection or unintended use of stored sensitive health data during ordinary food conversations.

Static analysis

No suspicious patterns detected.