T09 · Insecure Skill Coding Practices
- Location
SKILL.md:91- Finding
Unprotected Persistence of Identifiable Patient and Clinical Data
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 91–125
Vulnerability Type: Plaintext or insufficiently protected storage of sensitive health information
Risk Level: HighVulnerable Code Snippet
markdown Store: when contacted, patient's exact response, which flags matched, decision made. This is the audit trail. ## Memory Store active safety nets in memory/. Each entry: - Patient name, contact, condition, timeframe, red flags - Status: pending → sent → resolved/escalated - GP name for escalation routing ## Learning Track in learning/: - Was the escalation correct? (GP confirmed or overrode) - Which follow-up message phrasing got the best response rate? - Which red flag keywords matched most accurately? Use this to improve matching accuracy and message effectiveness over time.Technical Analysis
The skill explicitly instructs the agent to retain patient names, contact information, clinical conditions, red flags, exact patient responses, escalation decisions, and GP feedback in the
memory/andlearning/directories.These records combine direct identifiers with sensitive health information. The instructions do not establish encryption at rest, access-control boundaries, data minimization, retention limits, secure deletion, consent handling, de-identification, or separation between operational records and learning data.
Storing exact patient responses and clinical outcomes in persistent learning storage also creates a risk that information will remain available after the operational safety-net case has ended. Any process, user, or other skill able to read these directories could potentially access the retained records.
Attack Path
- A GP creates a safety net containing a patient's identity, contact details, condition, and red flags.
- The patient provides a response containing additional clinical information.
- The skill stores the patient's exact respons ...[truncated 925 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace unspecified directory-based persistence with an approved encrypted clinical datastore.
- Encrypt sensitive records both in transit and at rest using centrally managed keys.
- Enforce role-based access controls so that users and services can access only the patients and practices they are authorized to manage.
- Separate direct identifiers from clinical records and use pseudonymous case identifiers wherever possible.
- Avoid placing exact patient responses or direct identifiers in learning datasets. Only use de-identified, minimized, and appropriately consented data for learning.
- Define explicit retention periods for pending, resolved, and escalated cases, followed by verifiable secure deletion.
- Record and audit every access, modification, export, and deletion involving patient records.
- Prevent other skills or unrelated processes from reading the storage location through filesystem permissions and runtime isolation.
- Document consent, lawful processing, incident-response, backup, and data-subject handling requirements before deployment in a clinical environment.
