Back to skill

Security audit

Decision Trees

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward decision-tree guide and calculator, but users should not treat its output as professional financial, legal, medical, or life advice.

Install only if you want a local decision-analysis aid. Treat outputs as a framework for comparing assumptions, not as professional advice; for financial, legal, medical, business-critical, or major life decisions, verify assumptions independently and consult qualified professionals. If using interactive save, choose a new filename in a safe working directory to avoid overwriting files.

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
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Taint TrackingDirect Taint Flow, Variable-Mediated Taint Flow, Credential Exfiltration Chain
  • 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)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The README explicitly promotes use for investing and major personal decisions without pairing those claims with a prominent warning that the tool is only for structured thinking and can be unreliable for high-stakes choices. Users may over-trust the skill's expected-value framing and make financial or life decisions based on subjective probabilities and simplified assumptions, leading to harmful outcomes.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill references executable script usage and implies file-based inputs/outputs (scripts/decision_tree.py, tree.json) but does not declare any explicit tool scope or permissions. This creates a mismatch between apparent capabilities and declared boundaries, which can lead to over-broad runtime access or unclear security expectations if the platform infers or permits file operations implicitly.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The description lists triggers such as "should I", "what if", "evaluate options", and "compare alternatives", which are common phrases used in many unrelated contexts. Because the file does not provide tighter scope limits or negative examples, the skill could be invoked unintentionally outside genuine decision-tree use cases.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest describes this skill as decision tree analysis for evaluating options and uncertain outcomes, which aligns with computing and presenting results. In interactive mode, the code additionally offers to persist user-provided data to an arbitrary JSON file, a behavior not indicated by the manifest description and not necessary to perform the analysis itself.

Content

No source excerpt is available for this finding.

Tainted flow: 'filename' from input (line 118, user input) → open (file write)

Medium
Category
Data Flow
Confidence
65% confidence
Finding

Data from a source is assigned to a variable that is later passed to a sink, creating a variable-mediated taint flow.

Content

Scanner excerpt · scripts/decision_tree.py (reported line 119)May include surrounding context.

python
save = input("Save to JSON file? (y/n): ").lower()
    if save == 'y':
        filename = input("Filename: ")
        with open(filename, 'w') as f:
            json.dump(data, f, indent=2)
        print(f"✅ Saved to {filename}")

Static analysis

No suspicious patterns detected.