Back to skill

Security audit

Terminal Dashboard

Security checks for vulnerabilities and agentic risk

Overview

This skill appears to be a local terminal logging tool, but its metadata advertises a different shell-command, YAML, visualization, and alerting tool, and it stores user-entered operational text persistently on disk.

Review this carefully before installing. Treat it as a local logging/journaling utility, not as the advertised shell-command, YAML, visualization, or alerting tool. Do not enter secrets, tokens, private SQL, credentials, PII, or sensitive business data unless you are comfortable with that text being stored in local log files and exports under ~/.local/share/terminal-dashboard.

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:6
Finding

Potentially Sensitive Operational Data Stored with Inadequate Permission Hardening

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` A representative command stores raw input and duplicates it in the history log: ```bash ingest) shift if [ $# -eq 0 ]; then echo "Recent ingest entries:" tail -20 "$DATA_DIR/ingest.log" 2>/dev/null || echo " No entries yet. Use: terminal-dashboard ingest " else local input="$*" local ts=$(date '+%Y-%m-%d %H:%M') echo "$ts|$input" >> "$DATA_DIR/ingest.log" local total=$(wc -l < "$DATA_DIR/ingest.log") echo " [Terminal Dashboard] ingest: $input" echo " Saved. Total ingest entries: $total" _log "ingest" "$input" fi ;; ``` The same raw-input storage pattern is repeated for the other logging commands. ### Technical Analysis The script is intended to record pipeline descriptions, SQL queries, schema information, export operations, and similar operational content. Such content can include confidential dataset names, infrastructure details, query text, API information, or accidentally supplied credentials. The script creates its storage directory with `mkdir -p` and creates log files through shell redirection, but it does not establish a restrictive `umask` or explicitly set directory and file permissions. Consequently, access permissions are inherited from the runtime environment. Under a common `022` umask, newly created directories are typically mode `0755` and files mode `0644`, potentially making logs readable by other local users when the parent home directory is traversable. Input is also duplicated: it is written to a ...[truncated 1599 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill metadata and body materially misrepresent what the skill does: it is advertised as a shell-command execution, visualization, and alerting tool using YAML, but the content describes a local logging utility instead. This kind of capability mismatch is dangerous because users and downstream agents may grant trust, permissions, or invoke the skill under false assumptions, increasing the chance of unsafe data handling or unintended operational use.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The documentation describes an offline data-pipeline journaling tool, while the manifest identifies a shell-command execution and alerting tool. This inconsistency can mislead operators, security reviewers, and automated orchestration systems about required privileges and expected behavior, which is a real security risk in agent ecosystems where metadata influences routing and trust decisions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest describes a command-execution and alerting tool, yet the implemented commands are just CRUD-style append/read operations over log files in a local data directory. There is no shell command execution, no YAML-driven configuration handling, no alerting behavior, and no real charting beyond text output, creating a strong mismatch between claimed purpose and actual behavior.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file presents itself as 'Terminal Dashboard v2.0.0' with a different identity and purpose than the manifest's 'Sampler' shell-command/alerting description. Identity and purpose confusion weakens auditability and provenance, making it easier for a misleading or swapped skill to pass review and harder for users to understand what component they are invoking.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill encourages recording user-provided inputs and operational activity to persistent local log files but does not clearly warn that those inputs may include sensitive data. In practice, users may log SQL queries, dataset names, schema details, or pipeline notes containing credentials, PII, or proprietary information, creating an avoidable confidentiality risk.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

Inline documentation repeatedly brands the script as a generic 'Terminal Dashboard' data tool rather than a sampler focused on shell commands, visualization, and alerting. This actively points users toward a different intent than the manifest's stated skill identity and purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script persistently stores arbitrary user-supplied input under ~/.local/share/terminal-dashboard/*.log and echoes it back in search/export/status flows without any warning, minimization, or retention control. In the context of a tool advertised around shell commands and data operations, users may paste secrets, credentials, tokens, queries, or sensitive operational data that then remain on disk and can be exposed to other local processes, backups, exports, or shoulder-surfing.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.