Back to skill

Security audit

AU Allied Health Notes Recall

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Australian allied-health documentation helper, but it includes unsafe clinical-record examples that invent patient details despite its own guardrails.

Review carefully before installing in a real practice. The skill should not be used to produce filing-ready clinical notes unless every patient statement, objective finding, assessment, intervention, exercise, dosage, and billing detail is supplied or explicitly verified by the clinician. Current MBS descriptors, session limits, and rebate amounts should be checked against official sources before billing.

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:700
Finding
Clinical Record Example Fabricates Unsupported Patient Findings and Interventions<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 700–732; conflicting guardrails at lines 609–613 **Vulnerability Type**: Unsafe generation of unsupported clinical-record content **Risk Level**: Medium ### Complete Vulnerable Snippet ```markdown ### Example 1 — SOAP note for physiotherapy follow-up (CDM session) **User:** "Can you help me write a SOAP note for a physio follow-up? Patient is a 58-year-old male with chronic lower back pain. He's on a GPCCMP and this is his 3rd session. He said his pain is 4/10 this week compared to 7/10 at last visit. I did soft tissue work and taught him 3 new strengthening exercises." **Agent output:** PATIENT: [Full Name] | DOB: [dd/mm/yyyy] | Date: [dd/mm/yyyy] Practitioner: [Name], Physiotherapist | AHPRA: PHY000XXXXX Session type: Follow-up (Session 3 of 5 — GPCCMP) Duration: [X] minutes MBS Item: 10960 Referral: GPCCMP — Dr [GP Name], [GP Practice], dated [date] S — SUBJECTIVE Patient reports pain level 4/10 this week (NRS), compared to 7/10 at last session. Describes improvement in ability to stand for longer periods at work. Still experiencing stiffness in the morning, settling within approximately 30 minutes. Reports completing home exercise program 4 out of 7 days this week. O — OBJECTIVE Lumbar ROM: Flexion 70° (improved from 55° initial assessment), extension 20° (unchanged), lateral flexion symmetrical at 25° bilaterally. Prone assessment: L4/5 central PA stiffness — Grade III, reduced from Grade IV initial. Neurological screening: negative for lower limb neurology today. No antalgic posture observed in standing. Core activation present but fatigues at approximately 10 repetitions. A — ASSESSMENT Patient is demonstrating meaningful improvement in lumbar mobility and subjective pain reduction consistent with goals established at initial assessment (Goal: reduce pain to ≤3/10, return to unrestricted standing at work). Treatment response is positive. Primary remaining deficit is lumbar ex ...[truncated 4544 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace every unsupported fact in Example 1 with an explicit placeholder, such as: - `[insert patient-reported functional change]` - `[insert measured lumbar ROM, if assessed]` - `[insert neurological screening result, if performed]` - `[insert exercises, dosage, and resistance exactly as delivered]` 2. Restrict the completed example to information explicitly supplied by the user. For example, retain the reported pain change and soft-tissue intervention, but do not infer work tolerance, adherence, examination findings, goals, or named exercises. 3. Add a validation step before generating a filing-ready note: - Enumerate missing subjective, objective, assessment, and plan fields. - Ask the clinician to provide or confirm each clinical fact. - Keep unconfirmed fields visibly marked as incomplete. 4. Add an instruction immediately before the examples stating that examples must never override the non-fabrication guardrails and that omitted facts must remain placeholders. 5. Modify the documentation check so it explicitly lists every generated statement that still requires clinician verification. Do not state that mandatory elements are present when substantive clinical fields were inferred. 6. Add automated content tests for sparse-input scenarios. Tests should fail if the output introduces measurements, examination results, diagnoses, patient statements, goals, interventions, treatment duration, or exercise prescriptions that were not present in the input. 7. Require an explicit clinician confirmation step before describing generated material as complete, audit-ready, or suitable for filing. ]]>
Vulnerability Patterns
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Intent-Code Divergence

High
Confidence
98% confidence
Finding
The skill says it must never fabricate patient clinical details and should use placeholders when data is incomplete, but its example SOAP note includes detailed clinical findings, measurements, and treatment specifics that were not supplied by the user. In a clinical documentation context, this normalizes hallucinated medical record content and could lead clinicians to adopt or submit inaccurate notes that affect care continuity, audits, or Medicare substantiation.

Vague Triggers

Medium
Confidence
90% confidence
Finding
The trigger list includes generic phrases such as "clinical note," "write a note," "draft a note," and especially "item number" and "privacy," which can appear in many ordinary conversations beyond this skill's intended scope. Although the file includes a "Do NOT use" section, it does not provide enough trigger constraints or negative trigger examples to prevent accidental activation in unrelated contexts.

Intent-Code Divergence

Medium
Confidence
96% confidence
Finding
The skill explicitly instructs the agent to never state Medicare rebate dollar amounts from memory, yet elsewhere embeds a specific rebate figure as reference content. In a billing/compliance-focused healthcare skill, stale or incorrect rebate values can mislead users into making billing or patient-fee decisions based on inaccurate information, undermining the skill's own safety guardrails.

Vague Triggers

Low
Confidence
84% confidence
Finding
The task table uses broad examples like "help with my notes," "what code," and "report back," which are ambiguous outside this domain and could match everyday requests. The surrounding instructions do not explicitly require that these phrases be interpreted only in Australian allied health documentation or Medicare contexts.

Static analysis

No suspicious patterns detected.