Back to skill

Security audit

talking-pet-video

Security checks across malware telemetry and agentic risk

Overview

The skill’s pet-video workflow is real and disclosed, but it also grants and persists broad Beatra access, including paid-generation authority and silent self-updates, beyond a tightly scoped talking-pet skill.

Install only if you are comfortable granting this Beatra package a shared local Device Token with broad media and spending-related authority, allowing outbound registration metadata, and accepting silent verified package updates by default. Use the documented `python3 scripts/mcp_client.py update --auto off` control if you require explicit update review, and revoke the Beatra device from the console if you no longer trust the shared credential.

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
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (22)

Lp3

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding
The skill declares no permissions while instructing use of shell execution, filesystem access, network calls, environment/credential handling, and file write/update behavior. This creates a transparency and least-privilege failure: a host or user may authorize the skill under false assumptions, while the skill can upload local files, persist credentials, and modify its installation.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The documented behavior substantially exceeds the stated purpose of generating a talking pet video by adding OAuth login, persistent bearer-token storage, generic remote tool invocation, self-update, telemetry/registration, and uninstall/revocation logic. This mismatch is dangerous because users may trust the skill as a narrow media workflow while it actually introduces broad access paths, remote command capability, and persistent state that expand attack surface and data-exposure risk.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The skill includes an automatic self-update mechanism that downloads and replaces installed files during normal operation, which is unrelated to the pet-video task. Even with stated verification checks, silent code replacement introduces a supply-chain and execution-integrity risk: future behavior can change without per-update review, and any compromise of the update channel, package signing process, or ownership boundaries could lead to arbitrary code changes on the host.

Description-Behavior Mismatch

Medium
Confidence
92% confidence
Finding
The documentation grants and normalizes authorization for a broad Beatra platform scope far beyond a single-purpose talking-pet-video skill. That violates least privilege and creates unnecessary access pathways, so compromise or misuse of this skill could expose unrelated capabilities and data across image, video, music, speech, upload, model, and task tools.

Context-Inappropriate Capability

Medium
Confidence
94% confidence
Finding
Directing use of general-purpose task, upload, music, model, and other cross-media capabilities is inconsistent with the stated pet-video-only purpose and suggests overbroad capability exposure. In context, this makes the skill more dangerous because an agent following the guide could invoke unrelated platform functions under the same credential, expanding blast radius and enabling privilege creep.

Description-Behavior Mismatch

Medium
Confidence
91% confidence
Finding
The documentation describes built-in installation registration behavior that is unrelated to the user-facing talking-pet video functionality, indicating hidden network-active behavior beyond the advertised purpose of the skill. Even though the transmitted fields are described as non-secret and non-billable, undisclosed outbound telemetry expands the trust boundary, creates privacy and governance concerns, and can violate least-surprise expectations in restricted or enterprise environments.

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The skill requests a very broad OAuth scope set including artifacts, images, videos, music, speech, voices, wallet, and task operations, which materially exceeds the stated purpose of creating talking-pet videos from a photo and short audio. Overbroad authorization violates least-privilege and increases blast radius if the skill, host, or stored token is abused.

Context-Inappropriate Capability

Critical
Confidence
100% confidence
Finding
Requesting the wallet:spend scope for a talking-pet video skill is unrelated to the advertised functionality and could authorize financial actions the user would not reasonably expect. If the token is misused, an attacker or compromised component could spend wallet funds under the granted authorization.

Context-Inappropriate Capability

Medium
Confidence
87% confidence
Finding
The code derives and persists host platform and device hostname metadata even though that information is not obviously necessary to animate a pet image. While not directly code-execution dangerous, it expands device fingerprinting and privacy exposure beyond user expectations for this skill context.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
Maintaining a local inventory of installed skill paths and platforms is unrelated to the pet-video function and creates extra local surveillance data about the user's environment. That information can reveal usage patterns and filesystem layout, increasing privacy and recon risk if accessed by other components or through compromise.

Description-Behavior Mismatch

High
Confidence
95% confidence
Finding
The file implements a broad MCP client, remote tool invocation layer, installation telemetry, credential handling, and a self-updater, which substantially exceeds the declared talking-pet video functionality. This mismatch increases attack surface and creates a capability escalation path where a seemingly narrow media skill can act as a generic remote-command bridge to backend tools.

Context-Inappropriate Capability

Medium
Confidence
90% confidence
Finding
The code fingerprints the host environment via environment variables and host.json, then records installation and platform telemetry to local and remote state. For a talking-pet video skill, this collection is not obviously necessary and creates privacy and trust concerns, especially because it occurs automatically and is framed as best-effort background behavior.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
The CLI exposes generic remote capability discovery and arbitrary tool invocation by accepting a tool name and JSON arguments from stdin, unrelated to a pet-video-only workflow. In context, this turns the skill into a general-purpose proxy to backend MCP tools, greatly increasing the risk of abuse if a user, wrapper, or downstream component invokes unexpected operations.

Description-Behavior Mismatch

Medium
Confidence
84% confidence
Finding
The uninstall script explicitly manages a shared Beatra device connection, including shared credential lifecycle and cross-skill inventory, which is broader than the advertised talking-pet-video functionality. Even if framed as cleanup logic, this gives the skill visibility into and influence over other installed skills and shared authentication state, creating unnecessary security-sensitive reach.

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
This code reads shared installation metadata, determines what other skills are present, reads the device access token, and can revoke the shared OAuth/device credential. For a pet-video generator, that capability is over-privileged and dangerous because compromise, misuse, or modification of this script could disrupt all skills using the shared connection and expose information about the local skill inventory.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill states that newer releases install without separate confirmation, but this behavior is not prominently disclosed in the skill description. Silent updates reduce user control and auditability, allowing the executable behavior of the skill to change after trust has been granted, which is especially risky in a skill that already uses shell, network, filesystem, and credential storage capabilities.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The document states that the client silently checks for updates by default and automatically installs newer versions without separate confirmation. Even with checksum and origin verification, silently replacing installed package files changes local software state without clear upfront user consent, which can undermine user expectations, violate least surprise, and increase supply-chain blast radius if the trusted update source is ever compromised.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The file states that the client automatically performs a first-use registration call transmitting package slug, version, platform, and a stable external installation reference, but it does not indicate that the user is explicitly notified beforehand or asked for consent. Automatic metadata transmission without clear pre-notice is dangerous because it can expose persistent identifiers and environment information, undermining privacy expectations and potentially conflicting with organizational policies on outbound communications.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill can silently self-update installation files in maybe_auto_update() before handling normal commands, without user-facing notice or confirmation. Even with checksum and manifest validation, silent code replacement is dangerous in a skill whose expected function is simple media generation, because it changes executable behavior outside the user's awareness.

Credential Access

High
Category
Privilege Escalation
Content
scope = _required_string(polled, "scope")
            if set(scope.split()) != set(SCOPE.split()):
                raise RuntimeError("Beatra authorization returned an unsupported scope")
            credential_path = state_dir / "credentials.json"
            _atomic_json(
                credential_path,
                {
Confidence
72% confidence
Finding
The code writes a long-lived bearer access token to a local plaintext JSON credential file. Even with restrictive filesystem permissions, a stolen local account, malware, backup leakage, or multi-process compromise could expose the token and grant all approved scopes, including sensitive ones such as wallet spending.

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
90% confidence
Finding
The function reads ~/.beatra/credentials.json and extracts an access token for later use in an authenticated revocation request. In the context of a talking-pet skill, direct access to shared credentials is unjustified and creates a credential-access primitive that could be abused to interfere with platform authentication state or be repurposed if the script were altered.

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
93% confidence
Finding
Self-modifying or self-updating code is a high-risk capability because it allows the installed skill to replace its own executable files after deployment. In this skill context, that capability is especially concerning because the advertised function is pet-video generation, yet the code includes a full remote update channel that can materially change behavior over time.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

No suspicious patterns detected.