Back to skill

Security audit

arr CLI

Security checks for vulnerabilities and agentic risk

Overview

This skill is a read-only guide for querying self-hosted media services, with expected privacy considerations but no evidence of hidden or destructive behavior.

Install only if you operate or are authorized to inspect the target media stack. Treat `jellyfin now`, recent activity, request lists, debug output, and `--verbose` raw payloads as potentially private, and avoid logging or sharing them unintentionally.

Vulnerability Patterns
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
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 (6)

Whitespace Padding

Medium
Category
Prompt Injection
Content
Available on **all five CLIs**. Run `<cli> --help` for the per-service synopsis; universal flags are accepted by every subcommand, so position (before vs. after the subcommand) does not matter.

| Flag                        | Default        | Effect                                                                                             |
| --------------------------- | -------------- | -------------------------------------------------------------------------------------------------- |
| `--config PATH`             | canonical path | Per-invocation config override. Works in either position (see _Flag ordering_).                    |
| `--debug` / `--no-debug`    | off            | Full traceback + redacted request/response pair on stderr                                          |
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.

Whitespace Padding

Medium
Category
Prompt Injection
Content
`seerr` targets **Seer** (the unified Overseerr + Jellyseerr fork).

| Command                                  | Notes                                                                                                              |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `seerr requests`                         | Renderer unwraps `{page, totalPages, totalResults, results}` envelope                                              |
| `seerr request-count`                    | Aggregate counts                                                                                                   |
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.

Whitespace Padding

Medium
Category
Prompt Injection
Content
| Command                                  | Notes                                                                                                              |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| `seerr requests`                         | Renderer unwraps `{page, totalPages, totalResults, results}` envelope                                              |
| `seerr request-count`                    | Aggregate counts                                                                                                   |
| `seerr search <query>`                   | Percent-encoded; renderer unwraps paginated envelope. Multi-word / reserved-char queries short-circuit to `[]`.    |
| `seerr available <query>`                | Client-side title-substring match after fetch                                                                      |
| `seerr trending [movie\|tv] [day\|week]` | Defaults `timeWindow=week`, no mediaType filter                                                                    |
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.

Whitespace Padding

Medium
Category
Prompt Injection
Content
| `seerr available <query>`                | Client-side title-substring match after fetch                                                                      |
| `seerr trending [movie\|tv] [day\|week]` | Defaults `timeWindow=week`, no mediaType filter                                                                    |
| `seerr upcoming-movies`                  | Universal flags only (`--limit`, `--page`, `--language`)                                                           |
| `seerr upcoming-tv`                      | Universal flags only                                                                                               |
| `seerr discover-movies`                  | `--genre`, `--sort`, `--language`, `--page`; no defaults sent on the wire                                          |
| `seerr discover-tv`                      | `--genre`, `--sort`, `--language`, `--page`; no defaults sent on the wire                                          |
| `seerr movie <tmdbId> [--ratings]`       | Adds RT critic + audience scores under `payload["ratings"]`                                                        |
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.

Missing User Warnings

Low
Confidence
82% confidence
Finding
The `jellyfin now` command is described as returning "All active sessions across users," which can reveal other users' viewing activity. Although the file emphasizes read-only behavior, it does not explicitly warn that this output may contain sensitive user activity data.

Missing User Warnings

Low
Confidence
87% confidence
Finding
The `--verbose` description explicitly says it can return full raw payloads with server-internal metadata, but the documentation does not warn users that this may expose sensitive or personal data in terminals, logs, or downstream pipelines. This is a user-facing behavior with privacy implications and should be disclosed.

Static analysis

No suspicious patterns detected.