Back to skill

Security audit

AI 体检报告解读

Security checks for vulnerabilities and agentic risk

Overview

This health-report skill is mostly coherent, but generated reports may load unpinned third-party web code while displaying sensitive medical information.

Review before installing if you plan to process real medical reports. Prefer generating self-contained reports without remote scripts or styles, and avoid opening generated HTML with sensitive health data unless you trust any external resources it loads. Treat the output as educational guidance, not a diagnosis.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • 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)

T03 · Remote Payload Retrieval and Execution

Warning
Location
SKILL.md:90
Finding

Mutable Third-Party Code Loaded into Generated Health Reports

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 90-92
Vulnerability Type: Unpinned remote JavaScript and CSS retrieval
Risk Level: Medium

Vulnerable Code:

markdown
**HTML technical requirements**:
- Pure static HTML, use CDN to include Chart.js v4 and necessary CSS libraries
- Use CSS Grid/Flexbox layout, responsively adapting to desktop and mobile

Technical Analysis

The Skill explicitly instructs the agent to include Chart.js and unspecified CSS libraries from a CDN in generated HTML health reports. It does not define an approved CDN, pin an exact dependency version, require Subresource Integrity hashes, or constrain which CSS libraries may be loaded.

Consequently, the effective JavaScript executed by a generated report can change after the Skill package has been audited. A compromised CDN, malicious dependency version, DNS or hosting compromise, or unsafe CDN URL selected during report generation could introduce attacker-controlled code into the browser.

The phrase “necessary CSS libraries” is additionally unconstrained. Depending on how the instruction is implemented, generated reports could reference arbitrary third-party resources. Although CSS alone has more limited execution capabilities than JavaScript, unnecessary remote resources still create privacy and supply-chain exposure.

Attack Path

  1. A user provides sensitive medical indicators or an image of a health report.
  2. The Skill generates an HTML report containing the extracted health information.
  3. Following SKILL.md, the generated document references Chart.js or another dependency on a third-party CDN.
  4. The CDN resource is compromised, substituted, or resolved to an unsafe dependency because neither its exact artifact nor its integrity hash is fixed.
  5. The user opens the generated report in a browser.
  6. The browser retrieves and executes the attacker-controlled JavaScript in the report's origin and DOM con ...[truncated 1013 chars]
Remediation
View remediation

Remediation Suggestions

  1. Bundle a reviewed, exact version of Chart.js locally with the generated report instead of retrieving executable code at viewing time.
  2. If remote hosting is unavoidable:
    • Allowlist one trusted HTTPS CDN.
    • Pin the complete dependency version rather than using a major-version alias such as v4.
    • Pin the exact minified artifact path.
    • Add a verified Subresource Integrity hash.
    • Add the appropriate crossorigin="anonymous" attribute.
  3. Remove the open-ended authorization to include “necessary CSS libraries.” Prefer self-contained CSS embedded in the generated HTML.
  4. Apply a restrictive Content Security Policy, for example by limiting script-src, style-src, connect-src, img-src, and font-src to only required origins.
  5. Set connect-src 'none' when charts do not require network access, reducing the ability of injected code to exfiltrate report data.
  6. Avoid inline event handlers and dynamically evaluated code so that a strict policy can omit both unsafe-inline and unsafe-eval.
  7. Document and review every externally loaded artifact as part of the Skill's dependency inventory.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The README is entirely in Chinese and presents Chinese trigger phrases only, with no indication that users may interact in other languages or locales. Under the policy, a fixed language is a concern unless the skill explicitly offers a language choice or clearly documents a justified region-specific limitation.

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 conversational phrases such as '帮我看看体检' and '看不懂报告', which can match ordinary user utterances and cause unintended skill activation. In a health-related skill, accidental invocation is more concerning because it may pull users into quasi-medical guidance without explicit intent, increasing privacy and safety risks around sensitive health information.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The trigger list includes broad, everyday phrases such as '报告解读', 'health checkup', and '看不懂报告' that can match ordinary user requests beyond this specific skill's intended scope. This can cause unintended invocation, especially in a health context where users may disclose sensitive medical information to a skill they did not explicitly choose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

The skill content strongly biases output behavior toward Chinese without indicating adaptation to the user's language preference. Forced language behavior can degrade usability, cause misunderstanding of medical guidance, and increase the chance that a user misinterprets health advice if they did not opt into Chinese output.

Content

No source excerpt is available for this finding.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding

Suspicious Unicode normalization or mixed-script content

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file title and content specify a Chinese-language output template ('输出模板') and require all modules in that format, but there is no indication that the user can opt into another language or locale. This is a natural-language policy concern because it appears to force a specific language without documented user choice or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file presents all user-facing guidance and warnings exclusively in Chinese, beginning with the title and disclaimer, with no indication that another language is available or that Chinese is required for a region-specific purpose. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.