Back to skill

Security audit

music-practice-buddy

Security checks across malware telemetry and agentic risk

Overview

This skill locally analyzes user-selected music recordings and saves limited local practice history, with no evidence of hidden network sharing or destructive behavior.

Install only if you are comfortable with a local practice_log.json being created and updated with recording filenames, timestamps, scores, duration, and BPM. Use --output carefully because it writes to the path you provide.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (8)

Lp3

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding
Without declared permissions the skill's intent is opaque and cannot be validated.

Description-Behavior Mismatch

Medium
Confidence
95% confidence
Finding
The manifest frames the skill as an analyzer that produces feedback and recommendations for a recording. In addition to that stated purpose, the implementation automatically appends each analysis result to a persistent JSON history file, creating ongoing local tracking behavior that is not mentioned in the manifest description.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The stated purpose is objective feedback on instrumental practice recordings, focusing on timing, pitch, tempo, dynamics, and exercise recommendations. Maintaining a separate persistent practice log and exposing a history/trends command adds user activity tracking capability beyond what is necessary to analyze a recording and generate a practice report.

Missing User Warnings

Low
Confidence
87% confidence
Finding
The analyze flow automatically calls `log_session(result)`, which persists session metadata such as filename, timestamp, scores, and BPM to `practice_log.json`. Although the logging behavior is visible elsewhere in code, the analysis path does not provide a direct user-facing warning or confirmation before writing this persistent history file.

Missing User Warnings

Low
Confidence
76% confidence
Finding
The `--output` path causes the tool to write a JSON analysis file, but there is no prior warning about creating or overwriting a file containing recording-derived metadata. This is a file write operation, and the code only notifies the user after the write completes.

Context Leakage

High
Category
Data Exfiltration
Content
"target_bpm_comparison": target_comparison,
    }

    # Log the session
    log_session(result)

    return result
Confidence
85% confidence
Finding
Log the session log

Context Leakage

High
Category
Data Exfiltration
Content
def log_session(result):
    """Log the session to practice_log.json."""
    log = []
    if os.path.exists(PRACTICE_LOG):
        try:
Confidence
85% confidence
Finding
Log the session

Scope Creep

Low
Category
Excessive Agency
Content
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Confidence
70% confidence
Finding
NOT LIMITED TO

VirusTotal

63/63 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.