Back to skill

Security audit

Seerr server manager

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for managing a Seerr server, but it combines powerful admin actions with under-scoped credential, network, and supply-chain guidance that users should review carefully.

Install only if you trust the electather release and container supply chain, and prefer pinned versions or digests. Use stdio or bearer-token HTTP where possible, bind HTTP to localhost or a protected network, use TLS for any non-local access, avoid API keys in URLs, avoid no-auth mode, and use a least-privileged Seerr API key because the skill can perform destructive admin actions.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Warning
Location
SKILL.md:81
Finding

Mutable Remote Executable Installed Without Independent Authenticity Verification

Content
View full analysis
__.tar.gz -o seerr-cli.tar.gz curl -fsSL https://github.com/electather/seerr-cli/releases/latest/download/seerr-cli__checksums.txt -o checksums.txt grep seerr-cli___.tar.gz checksums.txt | sha256sum -c tar -xzf seerr-cli.tar.gz sudo mv seerr-cli /usr/local/bin/ ``` ### Technical Analysis The Skill instructs users to download an executable archive from a personal GitHub repository, extract it, and install the resulting binary into a system-wide executable directory. Retrieving the CLI is necessary for the declared functionality. However, the effective executable payload is not contained in the reviewed Skill and can change after the Skill has been audited. The archive and checksum are both obtained from the same publisher and mutable release channel. If the publisher account or release process is compromised, an attacker can replace both the executable archive and its checksum. The checksum therefore verifies download integrity but does not independently establish publisher authenticity. The use of the `latest` release path further weakens reproducibility because it does not pin installation to a release whose digest was reviewed independently. The project contains no source code, trusted public signing key, pinned digest, or provenance information with which to validate the downloaded executable. Installing the binary under `/usr/local/bin` using `sudo` also exceeds the minimum privileges required to run a user-level CLI. Although the downloaded binary is not executed by `sudo` in the shown commands, system-wide placement causes it to become available through the normal executable search path. ### Attack Path 1. ...[truncated 1419 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:397
Finding

Primary API Key Exposed Through Plaintext HTTP Query Parameters

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (13)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The environment variable SEERR_MCP_NO_AUTH=true disables all MCP HTTP authentication, but the warning is not prominent relative to the severity of exposing an unauthenticated admin-capable endpoint. If bound to a reachable interface, an attacker could invoke Seerr management operations without credentials.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 85)May include surrounding context.

curl -fsSL https://github.com/electather/seerr-cli/releases/latest/download/seerr-cli_checksums.txt -o checksums.txt grep seerr-cli.tar.gz checksums.txt | sha256sum -c tar -xzf seerr-cli.tar.gz sudo mv seerr-cli /usr/local/bin/

text

Supports Linux and macOS (amd64 / arm64).

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding

The documentation uses a floating Docker tag (ghcr.io/electather/seerr-cli:latest) rather than a pinned version or digest. This makes builds non-reproducible and creates a supply-chain risk: users may unknowingly run a changed image if the upstream tag is retargeted or compromised.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

This docker run example pulls and executes ghcr.io/electather/seerr-cli:latest, which is not pinned to an immutable digest. If the registry account or tag is compromised, users could execute attacker-controlled code with access to Seerr credentials supplied via environment variables.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation recommends authenticating the MCP HTTP endpoint with ?api_key=... for clients that cannot send headers, but does not prominently warn that query parameters are commonly exposed in browser history, logs, reverse proxies, referrers, and monitoring systems. Since the API key is the primary credential for the Seerr server, leakage can allow unauthorized media management and administrative actions.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
90% confidence
Finding

This container example again relies on an unpinned image while also enabling the more sensitive query-parameter authentication mode. Running a mutable image in a credential-handling workflow increases supply-chain exposure and could leak API keys if a malicious image is pulled.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

The documented Docker invocation for CLI commands uses an unpinned latest tag, exposing users to silent image changes. Because the tool is given SEERR_API_KEY, a compromised image could exfiltrate secrets or perform unauthorized Seerr actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill documents destructive operations such as deleting media, deleting files from Radarr/Sonarr, deleting issues, deleting users, and resetting passwords without prominently warning that these actions may be irreversible or operationally disruptive. In an agent/CLI context, this increases the chance of accidental destructive execution by users or AI-assisted workflows.

Content

No source excerpt is available for this finding.

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 425)May include surrounding context.

md
### MCP tools available

| Category              | Tools                                                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| Search                | `search_multi`, `search_discover_movies`, `search_discover_tv`, `search_trending`                                        |
| Movies                | `movies_get`, `movies_recommendations`, `movies_similar`, `movies_ratings`                                               |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 431)May include surrounding context.

md
| Movies                | `movies_get`, `movies_recommendations`, `movies_similar`, `movies_ratings`                                               |
| TV                    | `tv_get`, `tv_season`, `tv_recommendations`, `tv_similar`, `tv_ratings`                                                  |
| Requests              | `request_list`, `request_get`, `request_create`, `request_approve`, `request_decline`, `request_delete`, `request_count` |
| Media                 | `media_list`, `media_status_update`                                                                                      |
| Issues                | `issue_list`, `issue_get`, `issue_create`, `issue_status_update`, `issue_count`                                          |
| Users                 | `users_list`, `users_get`, `users_quota`                                                                                 |
| People & Collections  | `person_get`, `person_credits`, `collection_get`                                                                         |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 433)May include surrounding context.

md
| Requests              | `request_list`, `request_get`, `request_create`, `request_approve`, `request_decline`, `request_delete`, `request_count` |
| Media                 | `media_list`, `media_status_update`                                                                                      |
| Issues                | `issue_list`, `issue_get`, `issue_create`, `issue_status_update`, `issue_count`                                          |
| Users                 | `users_list`, `users_get`, `users_quota`                                                                                 |
| People & Collections  | `person_get`, `person_credits`, `collection_get`                                                                         |
| Services              | `service_radarr_list`, `service_sonarr_list`                                                                             |
| Settings              | `settings_about`, `settings_jobs_list`, `settings_jobs_run`                                                              |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

Scanner excerpt · SKILL.md (reported line 438)May include surrounding context.

md
| Services              | `service_radarr_list`, `service_sonarr_list`                                                                             |
| Settings              | `settings_about`, `settings_jobs_list`, `settings_jobs_run`                                                              |
| Watchlist & Blocklist | `watchlist_add`, `watchlist_remove`, `blocklist_list`, `blocklist_add`, `blocklist_remove`                               |
| System                | `status_system`                                                                                                          |

## Common Workflows

External Script Fetching

Low
Category
Supply Chain
Confidence
15% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · SKILL.md (reported line 81)May include surrounding context.

bash
# Replace <os> and <arch> with your platform (linux/darwin, amd64/arm64)
curl -fsSL https://github.com/electather/seerr-cli/releases/latest/download/seerr-cli_<version>_<os>_<arch>.tar.gz -o seerr-cli.tar.gz
curl -fsSL https://github.com/electather/seerr-cli/releases/latest/download/seerr-cli_<version>_checksums.txt -o checksums.txt
grep seerr-cli_<version>_<os>_<arch>.tar.gz checksums.txt | sha256sum -c
tar -xzf seerr-cli.tar.gz

Static analysis

No suspicious patterns detected.