Back to skill

Security audit

Munger Decision

Security checks for vulnerabilities and agentic risk

Overview

The skill is not malicious, but it needs review because it stores decision sessions without bounds and contains mislabeled decision-model data that can mislead analyses.

Install only if you are comfortable treating it as a draft decision-framing tool, not authoritative advice. Avoid entering confidential investment, hiring, or strategy details until session retention, input limits, cleanup, and model-data quality are fixed or clearly documented.

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

T09 · Insecure Skill Coding Practices

Warning
Location
src/dialogue.ts:63
Finding

Unbounded In-Memory Session and Answer Storage Enables Denial of Service

Content
View full analysis
{ // Input validation only checks whether a decision was provided if (!userInput || userInput.trim().length === 0) { return '❌ Please provide a decision description'; } // The complete input is stored before detector length validation const context = this.dialogue.createSession(sessionId, userInput); ``` Session creation inserts every session directly into an unbounded process-wide map: ```typescript // src/dialogue.ts:63-80 createSession(sessionId: string, userInput: string): DialogueContext { const context: DialogueContext = { sessionId, state: DialogueState.START, userInput, selectedModels: [], currentModelIndex: 0, currentQuestionIndex: 0, answers: {}, createdAt: Date.now(), updatedAt: Date.now() }; this.contexts.set(sessionId, context); return context; } ``` Answers are accepted and retained without type, size, or aggregate limits: ```typescript // src/index.ts:164-184 async handleAnswer(sessionId: string, answer: string): Promise { const context = this.dialogue.getContext(sessionId); if (!context) { return '❌ Session does not exist; start an analysis first'; } const models = this.recommender.recommend(context.selectedModels); const current = this.dialogue.getCurrentQuestion(sessionId, models); if (!current) { return '❌ Unable to obtain the current question'; } this.dialogue.recordAnswer( sessionId, current.model.id, context.currentQuestionI ...[truncated 3984 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (204)

Known Vulnerable Dependency: handlebars==4.7.8 — 8 advisory(ies): CVE-2026-33916 (Handlebars.js has Prototype Pollution Leading to XSS through Partial Template In); CVE-2026-33937 (Handlebars.js has JavaScript Injection via AST Type Confusion); CVE-2026-33938 (Handlebars.js has JavaScript Injection via AST Type Confusion by tampering @part) +5 more

Critical
Category
Supply Chain
Confidence
96% confidence
Finding

handlebars 4.7.8 has multiple serious advisories including prototype pollution and code or script injection paths through template compilation and AST confusion. Even though it is only pulled in transitively by ts-jest in this lockfile, Handlebars vulnerabilities are dangerous whenever untrusted templates, partials, helpers, or AST-like inputs can reach the compiler, potentially enabling XSS or arbitrary code generation behavior in tooling.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: brace-expansion==2.0.2 — 4 advisory(ies): CVE-2026-13149 (brace-expansion: DoS via exponential-time expansion of consecutive non-expanding); CVE-2026-33750 (brace-expansion: Zero-step sequence causes process hang and memory exhaustion); CVE-2026-14257 (brace-expansion: DoS via unbounded expansion length causing an out-of-memory pro) +1 more

High
Category
Supply Chain
Confidence
92% confidence
Finding

brace-expansion 2.0.2 is flagged for multiple denial-of-service issues involving pathological expansion patterns that can trigger excessive CPU or memory consumption. This is a real vulnerability class for any code path that accepts attacker-controlled glob or brace patterns, and even as a transitive dependency it can disrupt CI or developer workflows if untrusted patterns are processed.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: browserslist==4.28.1 — 2 advisory(ies): CVE-2026-73088 (Browserslist: Uncaught crash / prototype write via untrusted browserslist-stats.); CVE-2026-73089 (Browserslist: Unbounded memory growth (no cache eviction) via distinct query res)

High
Category
Supply Chain
Confidence
88% confidence
Finding

browserslist 4.28.1 is associated with crashes, prototype writes, and unbounded memory growth when handling untrusted stats or repeated distinct queries. Although this is primarily build-time tooling, if CI or scripts ingest attacker-controlled browserslist-stats or queries, it could cause denial of service or unsafe object mutation in the toolchain.

Content

No source excerpt is available for this finding.

Known Vulnerable Dependency: js-yaml==3.14.2 — 4 advisory(ies): CVE-2026-84375 (js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources); CVE-2026-59869 (js-yaml: YAML merge-key chains can force quadratic CPU consumption); GHSA-5p4m-2wfm-xmqj (JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026) +1 more

High
Category
Supply Chain
Confidence
90% confidence
Finding

js-yaml 3.14.2 is affected by multiple CPU exhaustion issues triggered by malicious YAML structures such as merge-key chains or !!omap constructs. In this repository it is a development dependency used by tooling, so the main risk is denial of service if untrusted YAML is parsed during CI, test, or config loading, but the vulnerable package is real.

Content

No source excerpt is available for this finding.

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 · src/smart-recommender.ts (reported line 225)May include surrounding context.

ts
hiring: { '08': 15, '06': 10, '45': 15 },
      strategy: { '08': 20, '07': 20, '09': 15 }
    };
    return rules[scenarioId]?.[modelId] || 0;
  }
  
  /**

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 · src/smart-recommender.ts (reported line 333)May include surrounding context.

ts
hiring: { '08': 15, '06': 10, '45': 15 },
      strategy: { '08': 20, '07': 20, '09': 15 }
    };
    return rules[scenarioId]?.[modelId] || 0;
  }
  
  /**

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file uses a single language throughout and does not indicate that users can choose another language or that the skill is intended only for a Chinese-language audience. 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.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The entire skill description, commands, examples, and user-facing prompts are presented only in Chinese, which indicates a de facto language constraint. There is no statement that the skill supports multiple languages, asks for user preference, or justifies that it is intended only for a Chinese-specific audience.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill explicitly exposes a history command and the architecture includes session management plus stored answers, but the documentation gives users no warning that decision prompts and responses may be retained or later exposed. For a decision-support skill, stored history can contain sensitive financial, personnel, or strategic information, so lack of disclosure increases the risk of inadvertent sensitive-data exposure.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This JSON file stores all user-facing names, descriptions, questions, and scoring labels in Chinese, with no indication that language selection is optional or that the skill is intentionally region-specific. The policy allows locale constraints only when they are user-selectable or clearly justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This JSON dataset presents the model names, descriptions, and prompt questions predominantly in Chinese, with no indication that language selection is optional or that the file is intentionally limited to a Chinese-only regional context. Under the policy rule for natural-language locale constraints, this constitutes a language policy issue because the content effectively enforces one language without documented opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

This JSON manifest-like data defines all model names, descriptions, and prompts in Chinese, but the file does not indicate that Chinese is an intentional locale-specific variant or that users can choose another language. For a generally reusable skill asset, forcing one language without opt-in can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

This entry is mislabeled: the model named '多元思维模型' contains description and prompts for '第一性原理'. In a decision-support skill, semantic mismatches can systematically misguide users or downstream agents into applying the wrong reasoning framework, reducing reliability and potentially causing bad decisions.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '均值回归' entry describes confirmation bias instead of mean reversion. This creates integrity risk in the knowledge base: any workflow relying on the model name to drive analysis will produce misleading outputs and may embed incorrect advice into user-facing decisions.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '激励机制' entry contains self-serving attribution bias content rather than incentives. In an advisory dataset, this undermines trust and can cause an agent to reason about motives, compensation, or alignment using unrelated psychological-bias text.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '二阶思维' entry is populated with illusion-of-control content instead of second-order thinking. Because the file appears intended as a structured reasoning model library, this mismatch can produce materially wrong analyses when the entry is selected by name.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The '地图不是疆域' entry discusses pattern-seeking rather than abstraction limits and representation-vs-reality. This is dangerous in context because users or agents may believe they are applying one epistemic safeguard while actually being steered toward a different concept.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '奥卡姆剃刀' entry describes dramatic-event probability distortion instead of simplicity preference. This kind of knowledge corruption is a real integrity flaw because it can silently alter reasoning outcomes without obvious runtime errors.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '汉隆剃刀' entry contains hyperbolic discounting content instead of Hanlon's Razor. In a structured model set, wrong conceptual mapping can contaminate generated guidance, especially where users trust the named model as authoritative.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '博弈论' entry contains uniqueness/superiority bias content rather than game theory. This can cause an agent to substitute a personal-bias lens where strategic interaction analysis is expected, leading to poor or misleading recommendations.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '幂律分布' entry documents just-world-fallacy content instead of power-law distributions. This is a true integrity issue because statistical reasoning based on the entry name would be wrong while appearing structurally valid.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '反脆弱' entry discusses overestimating knowledge rather than antifragility. In a reasoning skill, such mislabeled content can degrade decision quality and create false confidence that a resilience framework was applied when it was not.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The '黑天鹅' entry contains planning-fallacy text rather than black-swan event content. This matters because rare-event risk analysis and project-estimation bias are distinct; substituting one for the other can materially skew decisions under uncertainty.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.