Back to skill

Security audit

Beat

Security checks for vulnerabilities and agentic risk

Overview

Beat needs review because it is advertised as a music and audio tool, but the bundled script is mostly a generic local activity logger with no real audio processing.

Install only if you want a local text logging utility, not a real music or audio management tool. Avoid passing secrets, private file paths, tokens, or sensitive playlist/media details to its commands, and review or remove ~/.local/share/beat if you test it.

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

Note
Location
scripts/script.sh:6
Finding

Insufficient Permission Hardening for Locally Stored User Input

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` A representative command handler is: ```bash run) shift if [ $# -eq 0 ]; then echo "Recent run entries:" tail -20 "$DATA_DIR/run.log" 2>/dev/null || echo " No entries yet. Use: beat run " else local input="$*" local ts=$(date '+%Y-%m-%d %H:%M') echo "$ts|$input" >> "$DATA_DIR/run.log" local total=$(wc -l < "$DATA_DIR/run.log") echo " [Beat] run: $input" echo " Saved. Total run entries: $total" _log "run" "$input" fi ;; ``` Equivalent plaintext logging logic appears in the `check`, `convert`, `analyze`, `generate`, `preview`, `batch`, `compare`, `export`, `config`, `status`, and `report` handlers through line 289. ### Technical Analysis The script creates `~/.local/share/beat` and its log files without setting a restrictive umask or explicitly applying secure filesystem modes. Consequently, directory and file permissions depend on the caller's existing umask and on any pre-existing directory permissions. The command handlers accept arbitrary text and are designed to store it in command-specific log files and `history.log`. If users provide sensitive configuration values, private filenames, tokens, or other confidential text, those values are retained unencrypted. Under a permissive umask or insecure pre-existing permissions, another local account may be able to read them. The affected handlers currently contain an independent functional defect: they use `local` outside a function. In Bash, this normally fails, and `set -e` may terminate the script before the subsequent write. This limits i ...[truncated 1790 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 (8)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill’s declared purpose is music and audio management, but the documented behavior is a generic logging/export shell wrapper with templated outputs and no concrete audio-specific capabilities. This mismatch is dangerous because users may grant trust, provide sensitive file paths or media data, or invoke commands under false assumptions about what the skill actually does, increasing the risk of misuse, deceptive data collection, or unsafe downstream command behavior.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill’s declared purpose is music/audio management, but the implementation is a generic data-logging utility. This mismatch is dangerous because users or an invoking agent may supply filenames, metadata, playlist contents, or other sensitive workflow inputs believing they are being processed for audio tasks, while the tool silently persists them instead.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

Commands named 'convert' and 'analyze' imply processing of audio content, but only append arbitrary user input to local log files. In agent contexts, deceptive command semantics can be used to harvest prompts, paths, tokens, or private data that downstream systems may pass under the assumption of legitimate media processing.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Conflicting descriptions between the manifest context and the script’s own generic-toolkit banner indicate deceptive or misleading packaging. In a skill ecosystem, this increases risk because trust decisions are based on the advertised function, while the actual code performs unrelated persistent collection of user inputs.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The export feature exports accumulated internal logs rather than music/audio artifacts or metadata suggested by the skill description. This can expose historic user activity and previously captured sensitive inputs to disk in bulk, increasing confidentiality risk if the files are later accessed, shared, or indexed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The export operation creates persistent files containing aggregated activity history without warning. Bulk export materially increases exposure compared with individual logs because it concentrates sensitive operational data into easily copied or exfiltrated artifacts.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

User-supplied inputs are stored persistently in local log files without clear notice or consent. Because the skill is presented as an audio tool, users may provide file paths, media metadata, playlist names, or even secrets embedded in command arguments, all of which become recoverable from disk.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill advertises automatic history and activity logging but does not clearly warn users about retention, contents, access permissions, or how to disable/purge logs. Even for an offline tool, command history and logged inputs can expose sensitive filenames, metadata, or user activity patterns if stored persistently without explicit notice.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.