Back to skill

Security audit

Fasting Tracker

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent fasting tracker that keeps local fasting and preference records, with health and privacy cautions users should understand before relying on it.

Before installing, understand that this skill may keep fasting history, goals, symptoms, schedules, observance details, and preferences in local plaintext files under ~/Clawic/data/fasting/. Use medical judgment for extended fasts, diabetes, pregnancy, eating-disorder history, medications, or concerning symptoms; the skill is not a substitute for a clinician.

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
setup.md:12
Finding
Plaintext Persistence of Sensitive Health and Behavioral Data## Vulnerability Details **File Location**: `setup.md:12-14`, `setup.md:20-31`, `memory-template.md:1-3`, and `memory-template.md:20-39` **Vulnerability Type**: Sensitive information stored in plaintext without defined access controls **Risk Level**: Medium ### Vulnerable Code Snippets From `setup.md:12-14`: ```markdown 1. Read `~/Clawic/data/fasting/config.yaml` if it exists. Apply its values. 2. For anything absent, use the defaults in the Configuration table of `SKILL.md` — do not ask. 3. Read `~/Clawic/data/fasting/log.md` for the active fast and history, and `memory.md` for prior context (goal, schedule, symptom history). Absence is fine; proceed without comment. ``` From `setup.md:20-31`: ```markdown Write to config or memory **only** when the user states a preference in the course of the work — never as a preflight questionnaire. - User names a protocol, window, strictness, or units → update the matching key in `~/Clawic/data/fasting/config.yaml`. - User rules on a gray-zone item ("gum doesn't count for me") → record it under strictness rulings; it overrides the `tracking.md` table for that item from then on. - User reveals a goal, religious observance, measuring device, or training pattern → record it under the matching preference area (goal, observance, metrics, training, tone). - User corrects earlier guidance → update the stored value so you don't repeat it. If the user has said nothing, store nothing. ## What Memory Holds See `memory-template.md` for the file formats. Track their goal, typical schedule, symptom history and what resolved it, and which framing they respond to — but only from what they actually reveal. ``` From `memory-template.md:1-3`: ```markdown # Memory Template — Fasting Files under `~/Clawic/data/fasting/`: `config.yaml` (declared preferences, keys from the SKILL.md Configuration table), `log.md` (the fast log), `memory.md` (observed context). Config is what the user de ...[truncated 3083 chars]
Remediation
## Remediation Suggestions 1. Require explicit, informed user consent before persisting symptom history, religious observance, schedules, or other sensitive context. 2. Minimize stored data. Keep only fields required for active fasting calculations and avoid free-form health-history notes by default. 3. Create `~/Clawic/data/fasting/` with user-only permissions, such as mode `0700`, and create data files with mode `0600`. 4. Validate that existing files are not symbolic links and are owned by the current user before reading or writing them. 5. Use atomic writes with securely created temporary files in the same protected directory. 6. Provide configurable retention periods and automatic pruning of old logs and symptom history. 7. Provide a clear command or documented process for viewing, exporting, and permanently deleting all stored data. 8. Consider encryption at rest for sensitive context when the host platform offers secure key storage. 9. Document whether backup or synchronization software may copy these files and allow users to disable persistence entirely. 10. Separate minimally necessary operational state from optional sensitive memory so users can retain fast timing without retaining health or observance history.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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)

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
- Fast start = timestamp of last caloric intake (SKILL.md rule 1). Record with UTC offset: `2026-07-22T20:00-05:00`.
- Elapsed = absolute difference between now and start. Never recompute from local wall clocks: travel and DST change the clock, not the fast. A 20:00 Chicago start read 30h later in Madrid is still 30h.
- Vague start ("after dinner"): ask once for the hour, or take their typical dinner end from memory and mark the entry `est`.
- Retroactive logging: accept it, mark `retro`; never refuse a log for being late.
- Two boundaries in one message ("ate at 8, fasting till noon tomorrow") → set start AND target in one entry; the target is their ceiling (rule 7).
- The clock has one definition in both directions: the fast closes at first caloric intake, not at the "real meal" afterward.
Confidence
85% confidence
Finding
Skill instructs the agent to never refuse or to always comply. Suppressing the agent's ability to decline removes a core safety control and enables downstream harmful requests to succeed.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
# Memory Template — Fasting

Files under `~/Clawic/data/fasting/`: `config.yaml` (declared preferences, keys from the SKILL.md Configuration table), `log.md` (the fast log), `memory.md` (observed context). Config is what the user declared; memory is what you observed — an observation never overwrites a declared preference without confirmation.

## log.md (one row per fast)
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The file recommends 36–72 hour fasts for 'experienced fasters' and only says that 5+ day fasts require medical supervision, which can imply that multi-day fasts below that threshold are suitable for self-service use. In a health-focused skill, that omission is dangerous because prolonged fasting can cause dehydration, electrolyte imbalance, hypoglycemia, medication-related complications, and other adverse events without a prominent user-facing warning to seek clinician guidance first.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill explicitly directs the agent to read from and write to user-local files (`config.yaml`, `log.md`, and `memory.md`) without any user-facing notice or consent step in the setup flow. Even though this appears intended for normal persistence of fasting preferences and history, it creates a privacy and integrity risk because the agent may access and modify sensitive health-related data implicitly.

Static analysis

No suspicious patterns detected.