Back to skill

Security audit

个人健康管家免费版

Security checks for vulnerabilities and agentic risk

Overview

This health-management skill is mostly purpose-aligned, but it stores sensitive health data persistently in plaintext and makes unclear privacy claims about local-only handling while relying on an agent LLM.

Review before installing if you plan to store real medical or wellness data. Use a private machine, restrict permissions on ~/.health, avoid unencrypted backups in shared or synced folders, and assume any health details you ask the agent to analyze may be processed by the agent platform's LLM even if files are stored locally.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:259
Finding

Health Records and Backups Stored Without Explicit Access Controls or Encryption

Content
View full analysis
~/.health/config.json ``` ```python Path("~/.health/weight/latest.json").expanduser().write_text( json.dumps(record, ensure_ascii=False, indent=2) ) ``` ```yaml # ~/.health/config.yaml profile: name: 你的名字 age: 30 gender: male height_cm: 175 weight_kg: 70 activity_level: moderate ``` ```bash tar -czf health-backup-$(date +%Y%m%d).tar.gz ~/.health/ ``` ### Technical Analysis The Skill instructs the Agent to store identity, health, diet, sleep, exercise, weight, and medical-report information as plaintext JSON or YAML under `~/.health`. It does not explicitly set restrictive permissions on the directory or generated files. Consequently, their effective permissions depend on the user's environment and `umask`. The recommended backup command creates a compressed TAR archive but does not encrypt it. It also writes the archive into the current working directory, which could be a shared, synchronized, backed-up, or otherwise broadly accessible location. Compression does not provide confidentiality. The statement that local storage is completely under user control does not address access by other local principals, malware operating in the user's context, automated synchronization services, or accidental sharing of backup archives. ### Attack Path 1. A user or Agent follows the Skill instructions and records personal or medical information in `~/.health`. 2. The files receive permissions determined by the existing environment because the Skill does not enforce restrictive modes. 3. The user creates an unencrypted archive using the documented backup command. 4. The health directory or archive becomes accessi ...[truncated 1071 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
SKILL.md:440
Finding

Optional Python Dependency Is Installed Without Version or Integrity Pinning

Content
View full analysis
Remediation
View remediation
\ --hash=sha256: ``` 3. Install using hash enforcement: ```bash python -m pip install --require-hashes -r requirements.txt ``` 4. Perform installation in a dedicated virtual environment rather than the system Python environment: ```bash python -m venv .venv . .venv/bin/activate python -m pip install --require-hashes -r requirements.txt ``` 5. Document the trusted package index explicitly and advise users to review configured mirrors or proxies. 6. Periodically update the pinned version only after reviewing release provenance, security advisories, compatibility, and distribution hashes. ]]>
Vulnerability Patterns
  • Rogue AgentSelf-Modification, Session Persistence
  • 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)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

L251-L253 将触发条件描述为“需要数据分析、报表生成、统计洞察、数据可视化时使用”,这些表述非常通用,并未限定为个人健康数据场景。虽然文档整体描述的是健康管理工具,但该触发条件本身缺少明确边界、具体触发短语或排除示例,容易与大量日常分析类请求发生重叠。

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The examples instruct creation and overwrite of files under ~/.health without a clear adjacent warning that local files will be modified. Because the skill has write and exec tools and handles persistent health records, users may trigger state-changing operations without understanding that sensitive local data will be created or replaced.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
91% confidence
Finding

The skill explicitly creates persistent storage in ~/.health and encourages ongoing retention of personal health records. Persistent storage of sensitive medical and wellness data increases confidentiality risk on shared or compromised systems, especially when retention, permissions, encryption, and deletion controls are not defined.

Content

Scanner excerpt · SKILL.md (reported line 259)May include surrounding context.

Step 1: 初始化健康数据目录

bash
mkdir -p ~/.health/{weight,workouts,sleep,diet,reports}
echo '{"version":"1.0","created":"'$(date -I)'"}' > ~/.health/config.json

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill repeatedly claims the free edition is local-only and that data will not be uploaded, but it also declares a required LLM API dependency for core operation. In a health-management skill, this creates a material privacy and transparency risk because users may disclose sensitive medical data under the assumption it never leaves the device.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation states that no external API key is needed and all data stays local, while nearby text says an LLM API is required. This contradiction can mislead users about whether sensitive health information is processed by a third party, undermining informed consent and safe handling of personal data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

从标题、说明、示例注释到输出描述,文档全程以中文固定呈现,未说明是否支持其他语言,也未给出用户可选语言或需中文交互的明确理由。按规则,这属于语言/locale 约束未获得用户选择的自然语言政策问题。

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.