Back to skill

Security audit

health-checkup-recommender

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent, but it deserves review because it handles sensitive health information and documents forwarding a full profile, AI summary, and conversation log to a human desk without tight minimization details.

Review this before installing if you are not comfortable sharing health-related details. Use it only with explicit consent for symptom and family-history collection, confirm that QR/item sync sends only item IDs, and require a reviewable, minimized handoff payload before any ocean-desk transfer. The recommendations should be treated as checkup guidance, not medical diagnosis.

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
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (52)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The README describes collection of age, sex, symptoms, family history, and possible transfer to human staff, but does not clearly warn users that sensitive health and profile data may be collected and disclosed during the workflow. This creates a meaningful privacy and consent risk, especially because health information is highly sensitive and users may not expect handoff to a human agent.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documentation describes a rich medical recommendation and booking service, but the visible functionality is primarily verification, conflict checking, and pricing. In the healthcare context, this is dangerous because users may treat outputs as clinically grounded recommendations when they are not, and hosts may authorize broader access than the code justifies.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 59)May include surrounding context.

md
- **仅一个脚本发起网络请求**:`scripts/sync_items.js`(项目同步)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

md
- **仅一个脚本发起网络请求**:`scripts/sync_items.js`(项目同步)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 107)May include surrounding context.

md
- **仅一个脚本发起网络请求**:`scripts/sync_items.js`(项目同步)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 186)May include surrounding context.

md
- **仅一个脚本发起网络请求**:`scripts/sync_items.js`(项目同步)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 93)May include surrounding context.

md
5. **运行时依赖**:需在环境中执行 `npm ci`(已在 `_meta.json` 和 metadata 的 `install` 中声明,使用 `npm ci` 基于 `package-lock.json` 安装确保依赖树的一致性和安全性)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 104)May include surrounding context.

md
4. **项目验证(强制)**:调用 `node scripts/verify_items.js [推荐项目]`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 170)May include surrounding context.

md
4. **项目验证(强制)**:调用 `node scripts/verify_items.js [推荐项目]`

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 284)May include surrounding context.

md
4. **项目验证(强制)**:调用 `node scripts/verify_items.js [推荐项目]`

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · SKILL.md (reported line 266)May include surrounding context.

md
| 2026-05-08 | 4.5.6 | OceanBus 黄页集成:新增 recommend.js 统一推荐引擎、register.js/serve.js |
| 2026-04-07 | 4.2.3 | 修复 generate_qr.py 中的 DEBUG_MODE 文件检查,统一使用 NODE_ENV |
| 2026-04-07 | 4.2.2 | 增强 SECURITY_AUDIT.md 脚本行为矩阵;添加 .gitignore;更新 SKILL.md 网络行为说明 |
| 2026-04-07 | 4.2.1 | 修复安全扫描告警:移除 config/api.js 中对 .env 文件检查,统一使用 NODE_ENV;调整 validate_skill.js 检查列表 |
| 2026-04-06 | 4.1.9 | 修复 SKILL.md YAML frontmatter 格式问题,确保 description 被 ClawHub 正确解析 |
| 2026-04-06 | 4.1.8 | 同步更新的 description 字段,进一步强调全国覆盖的机构网络和二维码用户同意机制 |
| 2026-04-06 | 4.1.7 | 完善技能介绍,突出强调国家卫建委和 BMJ/JAMA 等权威循证医学数据来源,增强用户信任度 |

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill includes customer-service handoff and forwarding of profile and conversation data, which goes beyond recommending checkups or generating booking QR codes. Because the domain is health-related, forwarding summaries and logs can expose sensitive medical and identity information to another party without a narrowly defined necessity or minimization policy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file defines all conversation scripts, prompts, and user-facing templates exclusively in Chinese, including mandatory phrasing for information collection, recommendations, and QR-code confirmation. There is no indication that users may choose another language or that the locale restriction is optional or justified as a region-specific requirement, which creates a natural-language policy concern.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The prompt claims '不读取本地文件' ('do not read local files'), yet the same document instructs the agent to consult multiple local JSON reference files and invoke local scripts. This inconsistency is security-relevant because it misrepresents the skill's data access behavior, undermines transparency, and can bypass user or platform expectations about filesystem access.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrase is extremely broad (e.g. equivalent to a normal user saying they want a checkup), so the skill may activate during ordinary conversation without the user understanding that a specialized workflow collecting health data and generating referrals has begun. In a health context, accidental invocation is more dangerous because it can initiate sensitive questioning and downstream data sharing with a human agent.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README explicitly states that complete customer profile and AI recommendation summary can be transferred to a human agent. In the context of a medical recommendation skill, that profile can include sensitive health indicators and inferred risk information, so sending the 'full context' creates unnecessary disclosure risk unless data minimization and explicit consent controls are in place.

Content

No source excerpt is available for this finding.

Ssd 3

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The example payload demonstrates transmission of directly identifying information and recommendation details to another party, normalizing disclosure of personal profile data in a support handoff. Even though the sample is limited, in practice the surrounding workflow suggests this payload could be enriched with health-related context, making privacy leakage or over-sharing likely.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file contains user-facing skill documentation exclusively in Chinese, including usage guidance and referenced prompts, but does not mention that the language is optional or limited to a specific locale. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The document explicitly states that all operations involving user data must carry a --consent=true parameter, presenting this as a mandatory safeguard. However, elsewhere it documents sync_items.js as sending user-derived itemIds in a POST body and shows code that builds that request body, without showing any corresponding consent check; this creates an intent/documentation contradiction within the file.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.