Back to skill

Security audit

Risk Management Expert(医械风险管理专家)

Security checks for vulnerabilities and agentic risk

Overview

The skill provides medical-device documentation guidance with a limited local audit utility, though its bundled safety assurances are outdated and incomplete.

Use the material as a drafting framework and have qualified staff verify current standards and product-specific conclusions. Do not treat its perfect audit score or ownership attestation as current security certification. If you run the optional Python audit, explicitly select the skill directory; it replaces that directory's security_results.json.

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
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The supplied script's primary function is package auditing, not the declared medical-device risk-management workflow. It does not identify device hazards, assess risk acceptability, implement the six-step process, or produce a risk-management report. Although it could support maintenance of the described skill, it is a standalone audit utility with materially different behavior. Its checks are mostly structural or keyword-based; it does not fetch official references or validate regulatory correctness. No network requests, credential use, or exfiltration are evident.

Content

No source excerpt is available for this finding.

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · 安全审计报告.md (reported line 28)May include surrounding context.

md
| 风险维度 | 检查结果 | 判定 |
|---|---|---|
| 命令执行 | 包内无任何自动执行的脚本命令(curl/wget/bash/pip/npm 均 0 命中) | ✅ 无风险 |
| 远程脚本下载执行 | 无 `curl \| bash`、base64 解码执行等模式 | ✅ 无风险 |
| 网络请求 | 外链全部指向官方域(health.ec.europa.eu / openstd.samr.gov.cn / www.fda.gov / www.iso.org),无任何自动网络行为 | ✅ 无风险 |
| 文件系统操作 | 无删除/移动/写盘指令 | ✅ 无风险 |
| 凭据访问 | 无读取 API key / token / 环境变量行为;敏感扫描 0 命中 | ✅ 无风险 |

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: file_read, file_write.

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.

Dynamic import via __import__()

Medium
Category
Dangerous Code Execution
Confidence
75% confidence
Finding

Dynamic import() can load arbitrary modules at runtime, bypassing static analysis and potentially importing malicious code.

Content

Scanner excerpt · medical-device-risk-management_security_test.py (reported line 117)May include surrounding context.

python
result = {
        "skill": "medical-device-risk-management",
        "version": re.search(r"^version:\s*[\"']?([\w.]+)", sk.split("---")[1], re.M).group(1),
        "timestamp_local": __import__("datetime").datetime.now().isoformat(timespec="seconds"),
        "scope": "本地闭环 · 零真实凭据 · 可重复",
        "dimensions": dims,
        "overall": round(overall, 2),

The package-cleanliness test explicitly excludes caches while claiming to verify their absence.

Low
Category
Excessive Agency
Confidence
98% confidence
Finding

The cleanliness check skips all paths containing pycache but can still report that no caches are present. This creates a verification blind spot that allows excluded artifacts to remain in a package with a clean score; it does not by itself establish code execution.

Content

No source excerpt is available for this finding.