Back to skill

Security audit

Lidarr

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward Lidarr control skill that can change a media library and trigger searches, but its behavior is visible and purpose-aligned.

Install only if you want an agent to operate your Lidarr instance. Treat add, search, delete, blacklist, and queue commands as real changes that may start downloads or remove items; confirm targets before running them and keep the Lidarr API key in a protected secret file.

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 (10)

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 an artist

bash
# 1. Look up artist (returns MusicBrainz results)
curl -s "$LIDARR_URL/api/v1/artist/lookup?term=David+Bowie" \
  -H "X-Api-Key: $LIDARR_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/metadata profiles and root folders
curl -s "$LIDARR_URL/api/v1/qualityprofile" -H "X-Api-Key: $LIDARR_KEY"
curl -s "$LIDARR_URL/api/v1/metadataprofile" -H "X-Api-Key: $LIDARR_KEY"
curl -s "$LIDARR_URL/api/v1/rootfolder" -H "X-Api-Key: $LIDARR_KEY"

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.

md
"

# 2. Add the album (artist must already be in Lidarr)
curl -s -X POST "$LIDARR_URL/api/v1/album" \
  -H "X-Api-Key: $LIDARR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"foreignAlbumId":"<id>","monitored":true,"addOptions":{"searchForNewAlbum":true}}'

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 77)May include surrounding context.

Trigger search for all missing albums

bash
curl -s -X POST "$LIDARR_URL/api/v1/command" \
  -H "X-Api-Key: $LIDARR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"MissingAlbumSearch"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documents state-changing Lidarr operations such as adding artists/albums and triggering searches/download workflows without any explicit warning, confirmation step, or guidance to verify user intent first. In an agent context, this increases the chance of unintended modifications to the media library and unnecessary downloader activity, even though the commands target a local service.

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/metadata profiles and root folders
curl -s "$LIDARR_URL/api/v1/qualityprofile" -H "X-Api-Key: $LIDARR_KEY"
curl -s "$LIDARR_URL/api/v1/metadataprofile" -H "X-Api-Key: $LIDARR_KEY"
curl -s "$LIDARR_URL/api/v1/rootfolder" -H "X-Api-Key: $LIDARR_KEY"

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

This POST request adds an album and can trigger a new album search, causing state changes and potentially downstream activity in download clients. In the context of an autonomous agent skill, unaudited write operations to a local media-management API are security-relevant because they can alter configuration-managed content and initiate unwanted tasks.

Content

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

md
"

# 2. Add the album (artist must already be in Lidarr)
curl -s -X POST "$LIDARR_URL/api/v1/album" \
  -H "X-Api-Key: $LIDARR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"foreignAlbumId":"<id>","monitored":true,"addOptions":{"searchForNewAlbum":true}}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This command triggers a global MissingAlbumSearch, which can initiate broad downloader activity and consume network, indexer, and client resources. While intended for legitimate automation, exposing it without safety guidance or confirmation makes unintended bulk actions more likely in an agent-driven environment.

Content

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

Trigger search for all missing albums

bash
curl -s -X POST "$LIDARR_URL/api/v1/command" \
  -H "X-Api-Key: $LIDARR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"MissingAlbumSearch"}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The API reference documents destructive operations such as deleting artists, albums, track files, and queue items including blacklisting, but provides no warning about irreversible effects or operational safeguards. In a skill designed to drive an agent's actions, this increases the chance of accidental destructive requests being issued from natural-language prompts or automation mistakes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The document specifies use of an API key header but gives no guidance on secure handling, storage, redaction, or avoiding exposure in logs and prompts. In an agent skill context, credentials may be propagated through tool traces or debugging output, creating avoidable secret-leak risk.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.