Back to skill

Security audit

roku

Security checks across malware telemetry and agentic risk

Overview

This Roku control skill has real device-control and persistence capabilities, but the supplied evidence shows them as disclosed and aligned with its purpose rather than deceptive or malicious.

Install only if you want this machine or configured Telegram bot to control your Roku. Review any service setup before enabling it, keep the bridge bound to localhost unless you intentionally expose it, protect Telegram bot tokens, and prefer restricting commands and IPC permissions to the intended local user.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Content
if line.startswith("roku_"):
                            btn = line.replace("roku_", "")
                            if hasattr(r, btn):
                                getattr(r, btn)()
                                print(f"→ {btn}", flush=True)
                        # Handle "btn NAME" format
                        elif line.startswith("btn "):
Confidence
91% confidence
Finding
getattr(r, btn)()

Dynamic attribute access via getattr()

Low
Category
Dangerous Code Execution
Content
elif line.startswith("btn "):
                            btn = line.split(" ", 1)[1]
                            if hasattr(r, btn):
                                getattr(r, btn)()
                                print(f"→ {btn}", flush=True)
            except:
                time.sleep(0.01)
Confidence
91% confidence
Finding
getattr(r, btn)()

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
A description-behavior mismatch is a real security concern because it undermines user consent and review: users expect a local Roku HTTP bridge, but the reported implementation allegedly adds Telegram bot polling, callback handling, and IPC mechanisms not disclosed in the skill description. Undisclosed external network integrations and alternate control channels can create unexpected remote-control surfaces and data flows, making the skill materially more dangerous in the context of device control.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
The listener exceeds a narrow callback role by allowing pipe input to select arbitrary Roku object methods rather than a constrained set of remote-control commands. Because local IPC input is treated as trusted, another local process could send crafted commands to launch apps, search content, or invoke other supported device actions without authorization.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The file implements a Telegram-based polling and control bridge, but the skill description only presents a Roku CLI with discovery and control features. This mismatch hides a remote-control channel from reviewers and users, which can lead to unauthorized deployment of network-accessible control functionality and weakened trust boundaries.

Context-Inappropriate Capability

Medium
Confidence
89% confidence
Finding
The code reads a Telegram credential and establishes ongoing communication with Telegram even though that capability is not justified by the stated Roku CLI purpose. Hidden credential use and third-party communications expand the attack surface and can enable covert command ingress or unexpected data flows in environments that did not approve such integration.

Missing User Warnings

Medium
Confidence
87% confidence
Finding
The bridge installation instructions encourage creating a persistent launchd/systemd service and exposing local HTTP endpoints capable of controlling a device, but they do not prominently warn about persistence, token handling, or the consequences of remote control if the service is misconfigured or rebound beyond localhost. In this skill context, that matters because the feature changes host state and creates a standing control interface rather than a one-shot CLI action.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
This script issues network control commands to a Roku device based on local invocation and the ROKU_IP environment variable, but the file provides no user-facing disclosure, confirmation, or guardrails around that side effect. In an agent-skill context, hidden device-control behavior is more dangerous because it can trigger real-world actions on a networked device without clear consent or visibility.

VirusTotal

61/61 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.