T01 · Skill Instruction Hijacking
- Location
references/crisis-layer.md:1- Finding
Global Skill Instructions Override Unrelated Agent Activity
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This therapy skill is not clearly malicious, but it needs review because it broadly monitors messages and persists or exports highly sensitive mental-health records with weak safeguards.
Review before installing. Use this only if you are comfortable with sensitive therapy-related information being stored locally, included in future session context, and potentially exported as plaintext. Avoid using it on shared or synced machines unless storage permissions and export paths are fixed, and prefer a version that scopes crisis monitoring to explicit therapy sessions with clear consent and deletion controls.
references/crisis-layer.md:1Global Skill Instructions Override Unrelated Agent Activity
scripts/therapy-db.sh:198SQL Injection Through Unvalidated Command Arguments
scripts/therapy-db.sh:279Arbitrary File Truncation and Sensitive-Data Export
scripts/therapy-db.sh:6Sensitive Mental-Health Records Created Without Enforced Access Permissions
The skill markets itself as a CBT therapy companion with crisis detection, assessment, and differential diagnosis, but the finding indicates the implemented behavior is largely data storage/export and local database access that is not clearly disclosed. In a mental-health context, this mismatch is dangerous because users may disclose highly sensitive information under the assumption they are receiving clinically oriented support and privacy-preserving handling, while the actual functionality may persist or export that data without informed consent or the promised safety features.
The script persistently stores deeply sensitive mental-health information in a local SQLite database without any user-facing notice, consent flow, retention policy, or privacy guidance. Because the data includes therapy sessions, assessments, crisis signals, and thought records, silent persistence materially increases the risk of confidentiality loss if the machine, workspace, backups, or logs are accessed by others.
The export command creates a comprehensive, shareable plaintext report without warning the user that it contains sensitive mental-health data and may persist outside the application boundary. This is especially dangerous in this skill context because therapy records can include trauma, crisis history, cognitive distortions, and other highly private content that could cause serious harm if exposed.
Claiming crisis detection and differential diagnosis in the manifest without prominent warnings creates a high-risk representation that the skill can assess emergencies or distinguish conditions reliably. In the mental-health context, users may rely on these claims during crisis situations, increasing the chance of harmful delay, false reassurance, or inappropriate guidance.
The activation phrases include very generic terms like "therapy mode," "start therapy," and "therapy session," which could be said in ordinary conversation when a user is discussing therapy rather than intentionally invoking the skill. In a mental-health skill, accidental activation is more concerning because it may steer a normal conversation into clinical-style assessment, logging, or crisis workflows involving sensitive personal data.
Using an everyday self-disclosure like "I'm anxious" as an activation phrase is overly broad and highly likely to match normal user speech. In this specific context, the risk is elevated because the phrase concerns mental state: a user expressing distress could unintentionally trigger a structured therapy workflow, crisis detection, or persistent recording at a moment of vulnerability.
The activation phrases include common conversational language such as 'I'm anxious' and 'feeling anxious,' which can cause the skill to trigger during ordinary discussion rather than an intentional request to enter therapy mode. In a mental-health skill, accidental activation is risky because it may start logging sensitive disclosures, alter agent behavior, or present therapeutic framing without clear user consent.
The skill states it monitors ALL messages for crisis detection, but the documentation does not establish explicit opt-in or clear boundaries for that monitoring. Because this is mental-health data, always-on scanning materially increases privacy risk and can capture sensitive information outside the user's intended therapy context.
The PHQ-9 section includes direct self-harm content ('thoughts that you would be better off dead, or of hurting yourself') but does not provide a preceding user-facing warning that the questions are sensitive, potentially distressing, and only a screening aid rather than a diagnosis. In a therapy-oriented skill, presenting such content without informed framing can surprise or destabilize vulnerable users and may reduce safe consent to proceed.
The crisis protocol hard-codes English-only screening and safety prompts at the exact point where rapid comprehension matters most. In a therapy skill handling suicidality, a user with limited English proficiency may misunderstand direct risk questions or emergency guidance, causing delayed escalation, failed safety assessment, or inability to access help.
This prompt instructs the agent to provide only India-specific crisis contacts periodically, without first determining the user's country or clarifying that the resources may be region-specific. In a mental-health skill, that can misdirect a user in acute crisis to unreachable or inappropriate services, causing dangerous delay in getting help. The therapy context makes this more severe because crisis escalation is a core safety function, not a peripheral feature.
The export function writes a complete plaintext markdown report containing highly sensitive therapy data, including assessments, thought records, triggers, and homework, to a user-accessible filesystem path. In a mental-health skill, this creates a significant confidentiality risk because the file can be accidentally shared, indexed, backed up, or read by other local users/processes outside the chat context.
The manifest advertises broad mental-health capabilities such as therapy for anxiety, depression, stress, and trauma without clearly constraining when the skill should activate or what it is not qualified to do. In an assistant ecosystem, this can cause over-triggering on sensitive user disclosures and lead users into quasi-clinical interactions without informed consent or clear boundaries.
The manifest specifically claims validated assessments '(GAD-7, PHQ-9, DASS-21, PCL-5)'. While the schema allows generic assessment storage, the actual operational logic for status and due-checking only tracks GAD7, PHQ9, and DASS21, so one named assessment in the manifest is not actually implemented in the same way as the others.
No suspicious patterns detected.