Back to skill

Security audit

Bizplanner

Security checks for vulnerabilities and agentic risk

Overview

This package is a local business-data logger, not the business-plan generator its title and description advertise, and it persists potentially sensitive inputs in plaintext local files.

Treat this as a Review item, not a confirmed malicious package. Do not install it expecting it to generate business plans or financial projections. If you use it, assume anything entered may remain in plaintext logs under ~/.local/share/bizplanner and may be searchable or exportable; avoid confidential business, investor, customer, or financial data unless the package is relabeled, storage permissions are hardened, and deletion or retention controls are added.

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/script.sh:6
Finding

Business data files inherit potentially permissive filesystem permissions

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` Category-specific data is similarly written without establishing restrictive permissions, for example: ```bash echo "$ts|$input" >> "$DATA_DIR/ingest.log" ``` ### Technical Analysis The script creates its data directory and log files without setting a restrictive `umask` or explicitly assigning secure filesystem modes. Consequently, permissions depend on the process's ambient environment. With a common `umask` of `022`, the directory may be created as `0755` and log files as `0644`. This can allow other local accounts to traverse the directory and read the logs. The documented use cases include revenue figures, financial projections, queries, and other potentially confidential business-planning information. The issue affects `history.log` and all category-specific logs created through shell redirection. No authentication or file-permission validation is performed before data is appended. ### Attack Path 1. A user invokes the skill with confidential business information, such as revenue, customer, or financial-planning data. 2. The script creates `~/.local/share/bizplanner` and its log files under a permissive ambient `umask`. 3. The resulting directory and files are readable by another local account. 4. That account reads `~/.local/share/bizplanner/history.log` or another `*.log` file and obtains the recorded information. ### Impact Assessment This weakness can disclose all business data recorded by the utility to other users on the same host when filesystem permissions permit it. The exposure is limited to the affected user's Biz ...[truncated 321 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:49
Finding

JSON and CSV exports serialize untrusted log values without escaping

Content
View full analysis
"$out" local first=1 for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do [ $first -eq 1 ] && first=0 || echo "," >> "$out" printf ' {"type":"%s","time":"%s","value":"%s"}' "$name" "$ts" "$val" >> "$out" done < "$f" done echo "\n]" >> "$out" ;; csv) echo "type,time,value" > "$out" for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do echo "$name,$ts,$val" >> "$out"; done < "$f" done ;; txt) echo "=== Bizplanner Export ===" > "$out" for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue echo "--- $(basename "$f" .log) ---" >> "$out" cat "$f" >> "$out" done ;; *) echo "Formats: json, csv, txt"; return 1 ;; esac echo "Exported to $out ($(wc -c < "$out") bytes)" } ``` ### Technical Analysis The export implementation inserts log-derived values directly into JSON and CSV output. For JSON, quotes, backslashes, control characters, and embedded newlines are not JSON-escaped. A value containing `"` or structural JSON characters can corrupt the output or alter its apparent structure. For CSV, commas, double quotes, carriage returns, and newlines are not encoded according to RFC 4180. In addition, values begi ...[truncated 2211 chars]
Remediation
View remediation
bizplanner export ``` 6. Treat all stored log values as untrusted at every output boundary, even when the original entry was supplied by a local user. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The skill’s declared purpose is business-plan generation, but the documented functionality is a local CLI logging/query/export tool with persistent storage. This mismatch is dangerous because users may supply sensitive startup, financial, or investor-pitch data under false assumptions about what the skill does, leading to unintended data retention and misuse.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The manifest advertises generation of business plans and projections, but the body documents a general-purpose local data logging and export utility. This deceptive interface can cause operators to expose confidential business information to persistent local storage and exports without understanding the true behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The implementation does not match the advertised business-plan functionality and instead exposes a generic local data toolkit. This kind of capability mismatch is dangerous because users may grant trust and provide sensitive startup, investor, or financial information under false expectations, while the script persists and processes that data locally in ways not disclosed by the skill description.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The command handlers mostly append arbitrary user input into per-command log files instead of performing the promised planning or projection tasks. In this skill context, users are likely to enter confidential business ideas, projections, customer data, or fundraising notes, creating a privacy and trust risk because the data is silently retained rather than used only for the requested output.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

Branding the skill as a 'Business Plan Generator' while documenting only logging and data-management commands creates a misleading trust boundary. In this context, users are especially likely to enter highly sensitive strategic and financial data, making the mismatch more dangerous than a generic documentation error.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation says all data is stored locally and exported, but it does not clearly warn that every free-form input and action is persistently logged on disk. Because the skill is framed for investor pitches, startup planning, and revenue modeling, the likely inputs are commercially sensitive and their retention materially increases confidentiality risk.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The inline comments identify the script as a generic data tool/toolkit, directly contradicting the published skill purpose. This discrepancy is a strong indicator that the package may be mislabeled, which is risky because users and reviewers may underestimate data collection and storage behavior based on the manifest alone.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The script offers a broad set of generic data-pipeline operations unrelated to a business-plan generator's stated scope. Excess capability increases attack surface and makes covert collection, indexing, and repackaging of sensitive user data easier, especially when paired with persistent local logging and export features.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The export function aggregates locally stored logs into JSON, CSV, or text files without clearly warning users that their historical inputs can be bulk-extracted. This increases the likelihood of unintended disclosure because sensitive business data becomes easier to copy, share, or exfiltrate once consolidated into export artifacts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

User-provided input is written persistently to local logs without clear notice or consent at the point of collection. In a business-planning context, inputs may contain highly sensitive commercial information, so silent retention creates confidentiality and compliance risks even if the data never leaves the machine.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.