T09 · Insecure Skill Coding Practices
- Location
SKILL.md:49- Finding
Plaintext Collection and Unsupported Registration of Sensitive Insurance Lead Data
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 49-90 and line 110
Vulnerability Type: Plaintext handling of personally identifiable and health information
Risk Level: MediumVulnerable Code Snippet
The following is a faithful English rendering of the relevant Skill instructions:
markdown ### Fields to collect **Required:** - Name - Mobile phone number - Intended product **Optional:** - Age - Budget range - Brief health status - Additional requirements ### Lead output format Name: [Name] Phone: [Mobile phone number] Intended product: [Product name] Age: [Age, if provided] Budget: [Budget, if provided] Health status: [Description, if provided] Notes: [Other requirements] Registration time: [Current time] Registration completed. A dedicated broker will contact you within 24 hours.Line 110 additionally instructs the Agent to state that the phone number will only be used for broker follow-up.
Technical Analysis
The Skill instructs the Agent to collect a user's name, mobile phone number, age, budget, and health information, and then reproduce those values in a plaintext lead card. Phone numbers are personally identifiable information, while health information is particularly sensitive and may be subject to enhanced privacy requirements.
The project contains only documentation files and defines no authenticated lead-submission API, encrypted storage mechanism, access controls, retention policy, deletion process, or secure transfer channel. Nevertheless, the Skill directs the Agent to claim that registration has completed and that a broker will contact the user. Based on the audited files, this confirmation cannot be technically verified.
Repeating the collected information in the conversation increases its exposure in chat histories, application logs, monitoring systems, exported transcripts, and support records. The statement that the phone number will o ...[truncated 2088 chars]
- Remediation
View remediation
Remediation Suggestions
- Minimize data collection: Do not request health information, age, or budget unless each field is necessary for a clearly defined service operation. Collect only the minimum information required.
- Obtain explicit consent: Before collecting a phone number or health information, explain what will be collected, why it is required, who will receive it, how long it will be retained, and how the user can request deletion.
- Avoid plaintext repetition: Do not print complete phone numbers or health descriptions in confirmation messages. Mask values, such as displaying only the final four digits of a phone number, and summarize sensitive fields without reproducing them.
- Implement a secure submission channel: Send leads only through an authenticated, approved backend using transport encryption, server-side authorization, audit logging, and encryption at rest.
- Enforce access and retention controls: Restrict lead access by role, establish a short documented retention period, support deletion requests, and prevent sensitive fields from entering unnecessary analytics or diagnostic logs.
- Verify submission results: State that registration succeeded only after receiving a validated success response from the authorized backend. If no integration exists, clearly state that no registration has occurred and direct the user to an official contact channel.
- Validate privacy claims: Do not promise that data will be used only for broker follow-up unless that limitation is enforced through policy, application controls, and downstream contractual requirements.
- Separate sensitive workflows from general chat: Where possible, collect personal and health data through a dedicated secure form rather than through conversational history.
