Back to skill

Security audit

Sdbao

Security checks for vulnerabilities and agentic risk

Overview

This insurance assistant is documentation-only and purpose-aligned, but it asks users for sensitive lead information and claims registration without a clear secure submission or consent flow.

Review before installing. This skill should only be used where users explicitly want ShuiDi insurance broker follow-up, and sensitive details should be minimized, masked in confirmations, and collected through an approved secure channel with clear consent and retention terms.

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: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: Medium

Vulnerable 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Separate sensitive workflows from general chat: Where possible, collect personal and health data through a dedicated secure form rather than through conversational history.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (4)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill directs collection of a phone number and health-related information, but the privacy notice appears only later in a generic note and does not clearly precede or govern collection. In an insurance context, health status is sensitive personal information, so collecting it without a prominent just-in-time notice, purpose limitation, and minimization creates meaningful privacy and compliance risk.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill description says it should be used whenever users ask about insurance products or related services, which is broad enough to activate in loosely related conversations. Overly broad routing can cause the assistant to inappropriately pivot into regulated financial/insurance workflows and start soliciting leads when the user did not clearly request that service.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The lead-registration triggers include vague phrases like '想了解更多' and '帮我登记', which are common conversational expressions and may not reliably indicate informed consent to begin a data-collection and broker-referral flow. This increases the risk of prematurely collecting personal data and moving users into a sales funnel without clear authorization.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This markdown file presents all user-facing content exclusively in Chinese, including headings, instructions, and product descriptions. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation unless the locale constraint is explicitly documented and justified.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.