Back to skill

Security audit

Roadmap

Security checks for vulnerabilities and agentic risk

Overview

This is a local roadmap command-line skill that stores user-entered planning notes on disk, with some disclosure and export-quality issues but no evidence of deception, exfiltration, privilege escalation, or unsafe automatic execution.

Install only if you are comfortable with roadmap entries being saved locally under ~/.local/share/roadmap and exported from there. Avoid storing highly sensitive business plans unless you manage that directory yourself, and treat CSV/JSON exports carefully because the script does not safely escape all values for spreadsheet or machine-readable use.

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

Unsafe JSON and CSV Serialization Enables Export Injection

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 "" >> "$out" echo "]" >> "$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 ;; ``` ### Technical Analysis Roadmap entry values are derived from command-line input and stored verbatim in log files. During export, the script directly interpolates those values into JSON and CSV without applying format-specific encoding. For JSON exports, characters such as double quotes, backslashes, carriage returns, and newlines are not escaped. An attacker-controlled value can therefore invalidate the JSON document or inject additional JSON properties or objects into the exported representation. For CSV exports, fields are not quoted and embedded quotes, commas, carriage returns, and newlines are not escaped according to CSV rules. In addition, cells beginning with spreadsheet formula prefixes such as `=`, `+`, `-`, or `@` are written unchanged. When the resulting file is opened in spreadsheet software, such content may be interpreted as a formula rather than inert text. Shell argument quoting prevents this value from becoming shell code inside the script itself. The security boundary is instead crossed when an exported CSV file is opened by a formul ...[truncated 1526 chars]
Remediation
View remediation
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (5)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The manifest description says 'Use when you need roadmap,' which does not define a clear trigger scope or constraints and is broad enough to match many ordinary planning requests. This ambiguity can cause unintended invocation because it lacks specific activation phrases or exclusion conditions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The script silently creates a per-user data directory and appends activity and user-provided content into local log files, while the manifest only describes a generic command-line roadmap tool. This is a real transparency and data-handling issue because users may provide sensitive planning notes without realizing they are being retained and later exportable from disk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

These command handlers write raw user input directly to persistent log files without any upfront notice, sanitization, or privacy controls. Because roadmap/planning entries commonly contain sensitive personal or business information, silent retention on disk increases confidentiality risk, especially on shared systems or when exports are later generated.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The script's embedded description and its help output are inconsistent, and the help omits implemented commands like search and recent from the documented list. In a skill context, undocumented capabilities reduce user awareness and make hidden data access features more risky, even if the underlying behavior appears local and non-malicious.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The help output exposes broader functionality than the minimal manifest description, including tracking, reporting, and export features. This mismatch is a genuine disclosure issue because it obscures the scope of data collection and processing, though it does not by itself enable code execution or privilege escalation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.