Back to skill

Security audit

AI Song Cover Studio

Security checks across malware telemetry and agentic risk

Overview

This song-cover skill has a coherent music workflow, but it also uses broad Beatra account authority and silently updates its own package by default.

Review this before installing if you do not want a creative skill to hold a broad shared Beatra credential, spend Beatra credits, access task/artifact capabilities, register installation metadata, or silently replace its own files. Disable automatic updates if you install it, and upload only audio you own or are authorized to use.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (23)

Lp3

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding
The skill exposes broad code-like capabilities including shell, file access, environment access, and network operations without declaring permissions to the user. That creates a trust gap where a seemingly simple music-cover skill can access local data, invoke commands, and contact remote services, increasing the risk of data exfiltration or unintended system changes.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The documented purpose is song-cover generation, but the skill also performs authentication, persistent credential storage, arbitrary local file upload, telemetry/registration, self-updating, uninstall logic, and generic MCP tool proxying. This mismatch is dangerous because users may authorize or run the skill expecting a narrow media workflow while it actually gains a much broader ability to modify the system, store secrets, and communicate with remote services.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The skill includes self-updating package-management behavior unrelated to the core task of generating song covers. Even with integrity checks described, automatic replacement of package files expands the attack surface substantially and creates a path for unexpected code changes after initial review or approval.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The documentation describes a bundled client that silently checks for and installs newer releases before ordinary commands, which introduces software update and code-replacement behavior unrelated to the stated purpose of a song-cover generation skill. Even with documented integrity checks, embedding a self-updating mechanism in a content-generation tool expands the trust boundary and can expose users to unwanted code changes or supply-chain compromise if the update path is ever abused.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
Automatic package update and self-replacement capability is unjustified for a song-cover studio because it allows the tool to modify its own installed code outside the user's expected task flow. This creates a significant supply-chain and persistence risk: if the update source, signing/checking logic, or distribution infrastructure is compromised, arbitrary new code could be deployed under the guise of a normal music-generation command.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The authorization helper requests a very broad OAuth scope set far beyond the skill’s stated purpose of generating and reviewing song covers. This violates least privilege and increases blast radius if the token is abused or the skill is compromised, including access to unrelated artifact, task, voice, and spending capabilities.

Context-Inappropriate Capability

Critical
Confidence
95% confidence
Finding
The helper requests `tasks:read` and `tasks:cancel`, but the skill description suggests a simple one-cover-per-run workflow rather than broad task management. These permissions could let the skill inspect or interfere with unrelated user jobs, expanding impact beyond its intended operation.

Context-Inappropriate Capability

High
Confidence
95% confidence
Finding
The helper requests `tasks:read` and `tasks:cancel`, but the skill description suggests a simple one-cover-per-run workflow rather than broad task management. These permissions could let the skill inspect or interfere with unrelated user jobs, expanding impact beyond its intended operation.

Context-Inappropriate Capability

High
Confidence
95% confidence
Finding
The helper requests `tasks:read` and `tasks:cancel`, but the skill description suggests a simple one-cover-per-run workflow rather than broad task management. These permissions could let the skill inspect or interfere with unrelated user jobs, expanding impact beyond its intended operation.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The helper requests `tasks:read` and `tasks:cancel`, but the skill description suggests a simple one-cover-per-run workflow rather than broad task management. These permissions could let the skill inspect or interfere with unrelated user jobs, expanding impact beyond its intended operation.

Description-Behavior Mismatch

High
Confidence
96% confidence
Finding
The client embeds extensive package self-update logic that downloads and replaces installed files, behavior unrelated to the advertised song-cover function. Even with checksum and manifest validation, this creates a privileged code-update channel inside a creative skill, expanding trust and attack surface well beyond user expectations and enabling remote code changes if the vendor infrastructure or signing process is compromised.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The code fingerprints the host agent environment by inspecting environment variables and persisted host metadata, then uses that attribution in subsequent operations. This data collection is not necessary for song-cover generation and creates unnecessary privacy and tracking risk, especially when combined with registration telemetry.

Description-Behavior Mismatch

Medium
Confidence
88% confidence
Finding
Every tools/call request is silently augmented with source_package_slug and source_platform metadata, which is hidden from the caller and not part of the apparent business payload. This covert attribution increases privacy risk and weakens transparency because all downstream tool invocations become telemetry-bearing by default.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The skill records local inventory about installed skills and performs installation registration telemetry unrelated to audio-cover generation. Collecting and persisting cross-skill inventory plus external registration can reveal user tooling, environment, and usage patterns, making the skill materially more dangerous than its stated creative purpose suggests.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The uninstall script operates on shared device authorization state under ~/.beatra and makes revocation decisions for credentials used by potentially multiple skills, which is materially different from the advertised song-cover functionality. Even though this occurs during uninstall, it grants the package authority over authentication artifacts and device connection lifecycle, creating unnecessary security-sensitive behavior and increasing the blast radius if the package is compromised or misused.

Context-Inappropriate Capability

Medium
Confidence
88% confidence
Finding
The code performs a network POST to an authorization revocation endpoint using a bearer token during uninstall, behavior unrelated to song-cover generation and involving sensitive account/device state. While the apparent purpose is legitimate cleanup, any skill capable of contacting an auth service with local credentials expands trust beyond its stated role and can be abused for account disruption or covert credential handling.

Missing User Warnings

Medium
Confidence
94% confidence
Finding
The skill states that newer releases install automatically without separate confirmation, but this system-modifying behavior is not clearly disclosed in the user-facing description. Users may invoke the skill for a creative task without realizing it can download and replace local package files, which undermines informed consent and change control.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The manifest explicitly promotes uploading reference songs and generating derivative covers, but it provides no warning or constraint around copyright ownership, licensing, performer rights, or permission to use source recordings. In this skill context, that omission increases the likelihood that users will submit protected material and use the tool in ways that create legal and policy exposure for both users and the platform.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
Enabling silent update checks and automatic replacement by default without upfront warning undermines informed user consent and can lead to unexpected file modification on the host system. In the context of a song-cover skill, this is especially suspicious because users would not reasonably expect ordinary audio-generation actions to trigger software maintenance and potential binary replacement.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The file states that first use triggers an external `beatra.installations.register` call that sends installation metadata such as package slug, version, platform, and a stable external installation reference, but the skill metadata shown to the user does not disclose this behavior. This is a transparency and privacy issue because users may invoke the skill without realizing it contacts a remote service and transmits environment-linked metadata, even if the call is described as non-billable and non-blocking.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
Automatic silent self-updates modify installed package files during normal execution without a user-facing warning at the time they occur. That behavior reduces user control and makes it easier for future package changes—benign or malicious—to land inside the environment under the guise of a creative tool invocation.

Credential Access

High
Category
Privilege Escalation
Content
def _device_token(state_dir: Path) -> str | None:
    path = state_dir / "credentials.json"
    try:
        value = json.loads(path.read_text(encoding="utf-8"))
    except (OSError, ValueError):
Confidence
96% confidence
Finding
The function reads ~/.beatra/credentials.json and extracts an access token for use in an authorization revocation request. Even if intended for uninstall cleanup, giving a media skill direct access to bearer tokens is dangerous because the token could be repurposed for unauthorized API actions, and the skill’s declared context does not justify handling shared credentials.

Self-Modification

High
Category
Rogue Agent
Content
)
    update = subparsers.add_parser(
        "update",
        help="Check, install, or configure Beatra package self-updates",
    )
    update.add_argument(
        "--check",
Confidence
97% confidence
Finding
The exposed self-update command enables the package to replace its own installed code, which is a form of self-modification. In the context of a song-cover skill, that capability is unusually powerful and increases supply-chain and persistence risk because future behavior can change independently of the originally reviewed package contents.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.