Back to skill

Security audit

Radarr

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Radarr helper, but it exposes authenticated actions that can add, delete, and bulk-search movies without clear confirmation or safety guidance.

Install only if you want an agent to operate your Radarr instance. Before allowing mutating commands, require explicit confirmation for adding movies, bulk missing-movie searches, DELETE endpoints, queue blacklisting, renaming, and rescans; keep the Radarr API key secret and limit the agent to the intended local Radarr server.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (8)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

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

Content

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

Search and add a movie

bash
# 1. Look up by title (returns TMDB results)
curl -s "$RADARR_URL/api/v3/movie/lookup?term=The+Matrix" \
  -H "X-Api-Key: $RADARR_KEY" | python3 -c "
import sys,json
results = json.load(sys.stdin)

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

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

Content

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

md
"

# 2. Get quality profiles and root folders
curl -s "$RADARR_URL/api/v3/qualityprofile" -H "X-Api-Key: $RADARR_KEY"
curl -s "$RADARR_URL/api/v3/rootfolder" -H "X-Api-Key: $RADARR_KEY"

# 3. Add the movie

External Script Fetching

High
Category
Supply Chain
Confidence
90% confidence
Finding

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

Content

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

Trigger search for all missing movies

bash
curl -s -X POST "$RADARR_URL/api/v3/command" \
  -H "X-Api-Key: $RADARR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"MissingMoviesSearch"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill documents multiple state-changing Radarr operations, including adding movies and triggering searches/download workflows, without any warning that these actions modify the user's media library and may consume network, storage, and downloader resources. In an agentic setting, this can cause unintended changes or bulk activity if the skill is invoked without explicit user confirmation.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
"

# 2. Get quality profiles and root folders
curl -s "$RADARR_URL/api/v3/qualityprofile" -H "X-Api-Key: $RADARR_KEY"
curl -s "$RADARR_URL/api/v3/rootfolder" -H "X-Api-Key: $RADARR_KEY"

# 3. Add the movie

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

Although the request targets localhost, it is a state-changing authenticated command that initiates a bulk search for all missing movies, which can cascade into downloader activity and significant system changes. In an autonomous agent context, this creates risk of unintended outbound activity, resource usage, and media acquisition without explicit approval.

Content

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

Trigger search for all missing movies

bash
curl -s -X POST "$RADARR_URL/api/v3/command" \
  -H "X-Api-Key: $RADARR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"MissingMoviesSearch"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation exposes destructive DELETE operations and state-changing add/search commands without any warning, confirmation guidance, or safe-usage constraints. In an agent skill, this increases the chance that an automated consumer will remove movies, delete files, blacklist queue items, or trigger bulk searches/rescans without the user understanding the side effects.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The reference instructs use of an API key header but provides no warning that the credential is sensitive, must not be logged, echoed, or exposed to users. In an agent setting, missing secrecy guidance can lead to accidental leakage through debug output, tool traces, prompts, or error messages.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.