Back to skill

Security audit

Bingli Shengchengqi

Security checks for vulnerabilities and agentic risk

Overview

This medical-record skill does not show malware behavior, but it can create authoritative-looking patient records with invented clinical details from incomplete input.

Review carefully before installing. Use this only as a draft-writing aid, not as a source of clinical facts. Do not enter real patient data unless the environment is approved for sensitive medical information, and do not copy generated records into clinical, billing, insurance, or legal systems unless every fact is verified and unsupported fields are marked unknown or not assessed.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

other

Error
Location
SKILL.md:40
Finding

Fabrication of Unsupported Clinical Facts in Generated Medical Records

Content
View full analysis

Vulnerability Details

File Locations:

  • SKILL.md:40-45
  • 技能配置.md:46-51
  • 示例.md:31-74

Vulnerability Type: Unsafe medical record fabrication
Risk Level: High

Vulnerable Instructions and Examples

SKILL.md:40-45:

text
## 病历生成要求
严格按照以下模板生成专业、规范的入院记录:
- 所有必填字段无遗漏
- 未明确说明的信息按"正常"或临床默认值填充
- 医学术语规范,避免口语化
- 确保病历的完整性与专业性

技能配置.md:46-51:

text
## 默认值规则
- 体温未提及:36.5℃
- 脉搏未提及:72次/分
- 呼吸未提及:18次/分
- 血压未提及:120/80mmHg
- 其他未提及信息:填写"正常"或临床默认值

Relevant portions of 示例.md:31-74 demonstrate the resulting unsupported data:

text
姓名:张无及
性别:男性
年龄:35岁
婚姻状况:未婚
民族:汉族
出生地:北京市
职业:职员
入院时间:2026-03-14 20:16
记录时间:2026-03-14 20:16
病史陈述者:患者 (可靠程度:可靠)

**既往史**:既往体健;否认"高血压、糖尿病、冠心病"等慢性病史。否认"乙肝、结核、艾滋、梅毒"等传染病史。无手术、外伤及输血史。否认食物、药物过敏史。疫苗接种情况不详。

**体格检查**:
生命体征:T: 38.5℃,P: 85次/分,R: 20次/分,BP: 120/80mmHg。

**初步诊断**:
1. 急性上呼吸道感染
2. 发热待查:感染性?

Technical Analysis

The Skill explicitly instructs the Agent to replace missing clinical information with normal findings or predetermined values. This violates a fundamental medical-record integrity requirement: an unobserved or unreported finding must not be represented as measured, examined, or affirmatively denied.

The example confirms that this is not limited to harmless formatting defaults. From an input containing only fever, cough, duration, sex, and age, the generated record adds an identity, marital status, ethnicity, birthplace, occupation, timestamps, reliability assessment, detailed negative medical history, physical examination findings, vital signs, and preliminary diagnoses.

The generated diagnoses also conflict with SKILL.md:48, which states that the Skill should only generate records and should not provide diagnostic advice. No provenance markers distinguish user-supplied facts from inferred or fabricated content.

The issue does not grant operating-system privileges, execute code, or obtain unaut ...[truncated 1906 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove all instructions that replace missing clinical information with normal values or affirmative negative findings.
  2. Represent unavailable data explicitly as Not provided, Unknown, Not assessed, or Not examined, as appropriate.
  3. Require explicit user confirmation for every measurement, examination result, medical-history denial, demographic fact, and diagnosis.
  4. Preserve provenance by labeling each field as user-provided, clinician-observed, imported, or unresolved.
  5. Do not generate diagnoses unless separately requested within an appropriately controlled workflow. Any generated differential should be clearly labeled as unverified and must not be presented as an established diagnosis.
  6. Add validation that rejects generation when mandatory factual fields are absent rather than silently inventing them.
  7. Replace the unsafe example with one that leaves unspecified fields unresolved and clearly labels the document as an unverified draft requiring qualified clinician review.
  8. Add automated tests using sparse inputs to verify that the Skill never fabricates vital signs, examination results, history, identity data, timestamps, or diagnoses.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (16)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The README instructs the skill to fill unspecified information with normal clinical values and requires all fields to be complete, but it does not warn users that omitted medical data will be fabricated. In a healthcare setting, this can create false patient records, unsafe downstream clinical decisions, and serious documentation integrity issues.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

This skill collects and processes highly sensitive medical and personal data but provides no warning, consent language, or privacy-handling guidance. In a medical context, silent collection of symptoms, age, sex, and related details increases the risk of over-collection, inappropriate disclosure, and unsafe user assumptions about confidentiality.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill collects and generates medical records using highly sensitive personal health information, but the configuration does not warn users about privacy risks, data handling, or the sensitivity of the information being entered. In a healthcare context, omission of consent and privacy notice increases the chance that users disclose protected health data without understanding the implications.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes several broad, generic phrases such as '写病历', '生成病历', and '病历助手', which can match ordinary conversation and unintentionally activate the skill. In a medical context, accidental activation is more serious because it may prompt collection or generation of sensitive health information when the user did not explicitly intend to invoke this workflow.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The workflow begins with the single phrase '用户说"写病历"', which is ambiguous and broad enough to be said in many contexts without a clear intent to invoke this specific skill. Because the skill then proceeds to collect structured medical information, unintended activation could lead to privacy-sensitive questioning or record generation without sufficiently explicit user consent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file is entirely written as a Chinese-only workflow and template, and it instructs the model to generate the record strictly in that format without offering language or locale choice. This can violate language/locale policy when no user opt-in or documented regional justification is provided.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrase "写病历" is very broad and can match ordinary user requests, causing the skill to activate in situations where the user may not expect a rigid template-driven medical record workflow. In a medical context, unintended activation is more dangerous because it can produce authoritative-looking clinical documentation from incomplete or casual input.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The phrase '当用户说"写病历"或类似触发词时' leaves activation scope open-ended by allowing unspecified 'similar trigger words'. This ambiguity can cause unintended invocation because the file does not define what counts as similar or provide exclusion examples.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The trigger '入院记录' is a generic noun phrase rather than a specific command, so it could match ordinary discussion of admission records instead of an intentional skill invocation. The document does not provide contextual constraints to distinguish mention from invocation.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The instruction to fill unspecified fields as 'normal' or with clinical defaults causes fabrication of medical facts that the user did not provide. In an admission-record context, this is especially dangerous because the generated document may be mistaken for a real clinical record, leading to false documentation, patient-safety issues, and compliance/legal risk.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The package metadata strongly anchors the skill to Chinese-language behavior through its description, filename, category, and triggers, but does not document locale restrictions or require user opt-in for Chinese interaction. This can create unsafe or misleading behavior for users in other locales, especially in a healthcare context where misunderstanding language or medical terminology can lead to documentation errors.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger list contains broad, generic phrases such as "写病历", "生成病历", and especially "medical record", which can cause the skill to activate in contexts broader than the author's likely intent. In a medical setting, unintended invocation is more dangerous because it may steer users into generating or editing sensitive health documentation when they did not explicitly request this specific skill.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger list includes broad everyday phrases such as '写病历', '生成病历', and '病历助手', and the workflow states the skill starts automatically when a trigger is spoken. This can cause unintended activation in ordinary conversation and prompt collection of sensitive health data without clear user intent, which is especially risky in a medical context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The user-facing prompts are entirely in Chinese and require the user to provide medical information using Chinese-language instructions, but the file does not offer any language choice or explain that the skill is intentionally limited to a Chinese-speaking context. This is a natural-language policy concern because it imposes a specific language/locale on all users without opt-in.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The example demonstrates collecting and generating highly sensitive medical and personal information, including illness details, demographic data, and identifiers, without any privacy notice, consent language, minimization guidance, or warning about handling protected health information. In a medical-record generation skill, this omission can normalize unsafe collection and disclosure of sensitive data and increase the risk of privacy violations, improper storage, or accidental exposure of real patient information.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The file presents the skill entirely in Chinese and the documented trigger and workflow assume Chinese-language use, with no indication that users can choose another language or opt in to this locale constraint. This can violate language/locale policy when a skill implicitly enforces one language without disclosure or choice.

Content

No source excerpt is available for this finding.