Back to skill

Security audit

short-drama-score-pack

Security checks for vulnerabilities and agentic risk

Overview

The skill can generate music through Beatra, but it also requests broad account powers and silently updates its installed code, so it needs careful review before installation.

Install only if you are comfortable giving this Beatra package broad Beatra account permissions beyond music generation, letting it store a shared local device token, and accepting silent package updates by default. Consider disabling automatic updates with the documented command and reviewing the requested OAuth scopes before authorizing.

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
93% confidence
Finding
The skill declares no permissions while its documented behavior requires shell execution, filesystem access, network access, and likely environment/credential handling. This undermines user and platform trust boundaries because reviewers and users cannot accurately assess the operational risk before installation or use.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The skill presents itself as a music-generation tool, but the documentation reveals much broader behavior: OAuth login, persistent credential storage, arbitrary remote MCP operations, file upload, telemetry/registration, self-update, and uninstall logic. That mismatch is dangerous because users may consent to a benign creative tool while actually granting a remote-capable client with persistence and package-management behavior.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
Embedding package-management and self-update behavior inside a content-generation skill expands the attack surface beyond its stated purpose. Even if verification exists, update logic introduces supply-chain risk and additional code paths that can modify local files independent of the core scoring function.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
Silent automatic download and installation of newer releases without separate confirmation is a significant supply-chain risk, especially for a skill that also has shell, network, and file modification capability. A compromised update channel, signing process, or package publisher could turn ordinary use into unreviewed code execution and persistence.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The skill requests a very broad OAuth scope set, including images, videos, speech, voices, task control, artifact access, and wallet spending, even though the package is described as a short-drama music score generator. This violates least-privilege and would grant the skill capabilities far beyond its stated purpose, increasing blast radius if the skill is compromised or behaves unexpectedly.

Context-Inappropriate Capability

Critical
Confidence
99% confidence
Finding
The requested scopes include unrelated media-generation and voice-management permissions such as `images:generate`, `videos:generate`, `speech:generate`, `voices:read`, and `voices:write`, none of which are needed for generating instrumental drama beds. These unnecessary permissions broaden what the skill could do if misused and are especially suspicious in the context of a narrowly advertised music tool.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
The requested scopes include unrelated media-generation and voice-management permissions such as `images:generate`, `videos:generate`, `speech:generate`, `voices:read`, and `voices:write`, none of which are needed for generating instrumental drama beds. These unnecessary permissions broaden what the skill could do if misused and are especially suspicious in the context of a narrowly advertised music tool.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
The file exposes a generic MCP client that can list tools and invoke arbitrary remote tools by name from stdin, which is far broader than the advertised short-drama score generation capability. In skill context, this mismatch is especially dangerous because it creates an unexpectedly powerful networked execution surface under the cover of a harmless music skill.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The code records local skill inventory and sends installation registration telemetry unrelated to composing music. In the context of a creative audio skill, undisclosed device-local tracking and outbound metadata transfer increase privacy and trust risk because users would not reasonably expect installation surveillance from this functionality.

Context-Inappropriate Capability

High
Confidence
96% confidence
Finding
The package implements a full self-update system that downloads manifests and archives and replaces local installed files. Even though there are integrity checks, self-modifying code is materially riskier in a skill whose stated purpose is music generation, because it adds a software supply-chain and persistence mechanism unrelated to the advertised task.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The script’s stated behavior is to manage shared Beatra device credentials and cross-skill installation inventory, which is materially unrelated to the declared purpose of generating short-drama music. This kind of capability mismatch is dangerous because it gives a media-generation skill authority over authentication state for other skills, creating an opportunity for unauthorized disruption or account/device tampering.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
This code performs a network POST to revoke an OAuth device token, a sensitive credential-management action unrelated to the advertised score-pack functionality. In context, that means installing or removing a music skill can trigger account/device authorization changes, enabling denial of service against the user’s other installed skills or broader Beatra access.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The script enumerates and later removes shared state files under ~/.beatra, including credentials and global installation metadata for all skills. A content-generation skill should not need to read or delete shared authentication and inventory state, and doing so risks breaking unrelated skills, erasing forensic evidence, or removing access data without clear authorization boundaries.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The skill description does not prominently warn that normal usage may trigger automatic software replacement. This weakens informed consent and makes it easier for users to invoke package-changing behavior unknowingly, which is particularly concerning in a skill whose advertised purpose is only music generation.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
The document explicitly states that the client performs silent update checks and automatically installs newer versions without separate confirmation. Even though the text describes integrity checks and rollback protections, silent code replacement changes executable files without an upfront opt-in at the time of installation or update, which is a supply-chain and user-consent risk if the update channel is ever compromised or misconfigured.

Missing User Warnings

Low
Confidence
86% confidence
Finding
The document describes an automatic outbound registration call and a write to a local cache file on first use, but it does not clearly warn users that data will be transmitted and a file will be created or updated automatically. Even though the transmitted data appears limited and non-secret, silent telemetry-like behavior and undisclosed filesystem modification can undermine user consent expectations and create privacy or compliance concerns in sensitive environments.

Missing User Warnings

Medium
Confidence
80% confidence
Finding
The script records host metadata such as detected platform and device hostname to `host.json` without clear user-facing disclosure. While not immediately exploitable on its own, this creates unnecessary local tracking data and may expose environment details to other local processes or during support/log collection.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The skill maintains a local inventory of installed skills including absolute installation paths, platform, and timestamps in `skills.json` without user-facing disclosure. Absolute paths and inventory data can reveal usernames, directory structures, and software usage patterns, which increases privacy and reconnaissance risk if local files are exposed.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
maybe_auto_update() performs silent best-effort updates before normal command handling, modifying package files without user-facing notice at execution time. In a benign-looking media skill, hidden file modification increases stealth and makes compromise or unexpected behavior changes harder for users to detect.

Missing User Warnings

Low
Confidence
86% confidence
Finding
The registration path sends package slug, version, platform, and installation reference to a remote service without any user-facing disclosure in this file. While not direct code execution, this is still a privacy-relevant behavior that is unexpected for a short-drama score generator and broadens unnecessary network exposure.

Credential Access

High
Category
Privilege Escalation
Content
#: these and then removes the directory only if it is empty — the script
#: never recursively deletes a directory it does not fully understand.
_STATE_FILES = (
    "credentials.json",
    "installation.json",
    "host.json",
    "skills.json",
Confidence
97% confidence
Finding
Including credentials.json among files targeted for removal indicates the skill is designed to act on shared credential material. In the context of a short-drama music skill, access to authentication artifacts is unjustified and increases the risk of credential misuse, revocation, or destructive cleanup affecting unrelated components.

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
99% confidence
Finding
The _device_token function reads an access token directly from credentials.json, giving the skill the ability to use or revoke shared device credentials. For a music-generation package, this is an unjustified credential-access path that can be exploited to disrupt service, manipulate authentication state, or expand abuse beyond the skill’s advertised purpose.

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
95% confidence
Finding
The CLI explicitly supports package self-update, enabling replacement of local code after download from the network. In the context of a skill marketed for soundtrack creation, self-modification is an unjustified high-risk capability because it can alter future behavior and expand persistence beyond the expected creative function.

Static analysis

No suspicious patterns detected.