T01 · Skill Instruction Hijacking
- Location
SKILL.md:56- Finding
Mandatory External-Link Injection into Agent Responses
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
SupStack is a coherent supplement advisor, but it automatically stores and reuses sensitive health information and can set up ongoing monitoring without strong consent or scoping controls.
Install only if you are comfortable with the agent keeping a local, long-lived health profile that may include supplements, medications, conditions, allergies, demographics, search interests, experiments, and research-monitor state. Before using it, review or disable automatic profile writes and cron monitoring, keep the workspace private, and periodically inspect or delete ~/.openclaw/workspace/supstack data.
SKILL.md:56Mandatory External-Link Injection into Agent Responses
SKILL.md:354Automatic Plaintext Persistence of Sensitive Health Information Without Explicit Consent
scripts/supstack.sh:916Path Traversal and Unsafe File Replacement in Experiment State Operations
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.
3. **Use the right endpoint.** The API has specialized endpoints — use `/recommend` over `/match` when the user has an existing stack.
4. **Honest about gaps.** If evidence is weak (score < 5), say so plainly. If a supplement isn't in the database, say so — don't hallucinate data. Users trust you because you tell them when the science *isn't* there, not just when it is.
5. **One at a time.** When building stacks, recommend introducing supplements sequentially (2 weeks apart) so users can identify what's actually working.
6. **Answer first, admin later.** Always answer the user's question before doing housekeeping (saving to profile, logging interests, updating state). They came with a question — that's the priority.
7. **Don't make them repeat themselves.** If they told you something before — their stack, their medications, their goals — use it. Check the profile before asking questions you should already know the answer to.
8. **Show, don't tell.** Don't say "I can check interactions for you" — just check them and report what you found. Don't say "I'll save this to your profile" — just save it and mention it casually ("Added that to your profile, by the way").
9. **ALWAYS include page links.** Every time you mention a specific supplement, include its `pageUrl` from the API data at the end of your response. This link auto-generates a rich visual card preview in WhatsApp/Telegram. Only ever use the `pageUrl` — never output any other supstack.me URL.
The instructions encourage silent background logging and profile updates ('just save it') without clearly notifying the user. Hidden collection of health-related interests and behaviors is especially sensitive because it creates a longitudinal record of medical concerns and supplement research.
The skill directs collection and analysis of sensitive health data including medications, conditions, allergies, demographics, and behavioral history. For a supplement advisor, this is excessive by default and raises significant privacy and misuse risk if the local profile is accessed by other tools, exposed, or retained indefinitely.
The skill instructs persistent storage of sensitive health and medication data without a clear upfront warning that this information will be retained across sessions. That undermines informed consent and can lead users to disclose highly sensitive medical details they would not have shared if retention were explicit.
These profile instructions explicitly direct automatic extraction and storage of sensitive personal and health data from ordinary conversation. That is dangerous because it normalizes covert collection of medical information, making accidental over-collection and privacy violations likely even during casual chats.
Interest and search-history logging creates behavioral tracking across sessions, including what health topics and supplements the user repeatedly researches. In a supplement and medication context, that history can reveal sensitive inferred conditions or vulnerabilities even when the user never stated them directly.
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
# RESEARCH MONITOR — Stop and clear all tracking
# ──────────────────────────────────────────────
monitor-clear)
rm -f "$STATE_DIR/monitor.json"
echo '{"status": "cleared", "message": "Research Monitor stopped and all tracking data removed."}'
;;
These commands establish and populate a profile file that can contain medications, conditions, allergies, trials, and notes in plain text, which is sensitive health information. Because the data is stored locally without encryption, access controls, or explicit consent flow, compromise of the local workspace or accidental sharing can expose highly sensitive personal context.
The HTML comments act as hidden operational instructions that are not visible to end users, including automatic updating of a persistent health profile based on user mentions. While not overtly malicious, concealed instructions that direct silent data collection and profile mutation are security-relevant because they can bypass user awareness and make sensitive-state accumulation happen implicitly.
# SupStack User Profile
## Current Stack
<!-- Updated automatically when user mentions supplements they take -->
<!-- Format: - slug | Name | dose | timing | started date -->
## Medications
The statement 'I remember everything you tell me' promotes indefinite retention and reuse of sensitive personal health information without limitation. Indefinite memory of medications, conditions, and behaviors materially increases the blast radius of compromise and creates unnecessary long-term privacy risk.
The README explicitly says the agent stores highly sensitive health data such as supplements, medications, conditions, allergies, and preferences, but it does not present an explicit privacy notice, retention policy, consent flow, or security controls. Health and medication data are sensitive personal data, and silent persistence increases the risk of unauthorized disclosure, over-collection, and unsafe secondary use.
The profile feature encourages broad accumulation of sensitive data, including medications, allergies, conditions, prior trials, and behavioral preferences, without clear minimization or consent boundaries. Aggregating these categories in a persistent profile creates a rich sensitive dossier that could be misused or exposed.
The 'Safety Watchdog' feature describes always-on monitoring of user statements, automatic inference of health-related changes, and persistence of newly mentioned medications without a clear warning or consent step. This creates a privacy and autonomy risk because the system may infer and retain sensitive medical information from casual conversation beyond the user's immediate request.
The README says the agent will automatically add newly mentioned prescriptions and keep tracking them, without requiring user confirmation. Automatically capturing prescription data from conversation is dangerous because it turns incidental disclosure into persistent medical profiling without an explicit consent boundary.
The skill clearly expects shell, network, file read, and file write capabilities, yet it declares no explicit tool scope or permission boundary. That mismatch increases the chance the runtime grants broader access than users or platform policy expect, especially given the skill's ability to read/write local profile files and manage cron state.
The trigger list contains broad phrases like 'help', 'experiment', 'what's good for', and 'any side effects', which can cause accidental activation in unrelated contexts. Because the skill performs profile reads/writes and monitoring behavior, overbroad routing can expose sensitive data or initiate actions when the user did not intend to invoke this skill.
The instruction to remember everything the user tells the skill encourages indiscriminate retention of sensitive data beyond what is necessary for the current task. In a health-adjacent context, blanket persistence increases the risk of storing unnecessary medical, behavioral, and preference information indefinitely.
The skill repeatedly instructs the agent to inspect profile data and act on it without asking the user again, which increases autonomous decision-making over sensitive health context. In this skill, that autonomy matters because it can trigger interaction checks, memory use, and other stateful actions without explicit confirmation at the moment of use.
Use this decision tree to pick the right command. Always check the user's profile first (stack, medications, goals) to provide context-aware answers without asking redundant questions.
User asks about...
This section expands a supplement-advice skill into persistent profiling and memory-driven behavior that goes well beyond a narrow lookup function. The danger is not classic code execution but scope creep: users may invoke the skill for supplement advice without realizing it is building a long-lived health profile and reusing it in future sessions.
The skill formalizes cross-session persistence by directing reads and writes of user profile state at the start of recommendations and safety checks. Persistent health-context reuse magnifies privacy impact because future outputs may depend on old sensitive data the user forgot was stored.
diet: omnivore"
### When to Read vs Write
**Read the profile** at the start of any recommendation, safety check, or stack analysis:
- Pull `profile-stack-slugs` → feed into `--stack=` parameter
The documented research monitor introduces proactive surveillance-style tracking and scheduled outreach, which materially changes the skill from a passive advisor into an ongoing monitoring agent. That creates privacy and autonomy risks because it can continue analyzing user interests and sending messages after the original query context has ended.
The research monitor describes ongoing notifications and stateful tracking, but the skill text does not require a clear upfront disclosure of retention, frequency, and persistence implications before setup. Users may agree to 'updates' without understanding that background state and scheduled messaging will continue across sessions.
Creating or updating cron entries establishes durable background behavior beyond the live session, which is a form of persistence with operational and privacy implications. In combination with research monitoring, it can continue processing user-related state and generating outreach without fresh user intent each time.
search to find exact slugs for each supplement name. Confirm with the user if ambiguous.bash ~/.openclaw/skills/supstack/scripts/supstack.sh monitor-setup slug1,slug2,slug3 --frequency=weeklyExample response after setup:
Autonomous cron-job management gives the skill the ability to establish persistence and scheduled execution beyond the immediate conversation. Even if intended for benign reminders, that capability increases platform risk because it can create background behavior not obviously required for answering supplement questions.
This manifest prompt describes what the scheduled skill should do, but it does not clearly distinguish the exact trigger scope or exclusion conditions beyond the cron schedule. Because the natural-language instruction includes broad behavioral conditions like 'stay silent unless it has been 4+ weeks,' the activation and notification boundaries are underspecified for operators reviewing or reusing the manifest.
No suspicious patterns detected.