← Back to search

CVE-2026-61826

10 CRITICALpublic exploit available

Published 2026-10-30 · Updated 2026-10-30

AI risk analysis

Summary
Bazarr's Plex OAuth API namespace lacks authentication on several endpoints, allowing unauthenticated attackers to clear credentials, inject arbitrary API keys, bind attacker-controlled Plex accounts via PIN, and tamper with configuration, leading to credential theft, SSRF, and integration denial of service.
Exploitability
Exploitation requires only network access to the Bazarr instance and knowledge of the affected endpoints; no authentication, PIN, or prior state is required for most actions.
Blast radius
Successful exploitation allows full compromise of the Bazarr-Plex integration, including credential theft via SSRF, persistent configuration tampering, and denial of service by disabling the integration.
Detection
Look for unauthenticated POST requests to /api/plex/oauth/logout, /api/plex/apikey, /api/plex/oauth/pin, /api/plex/select-server, /api/plex/oauth/servers, /api/plex/webhook/create, /api/plex/webhook/delete, or /api/plex/encrypt-apikey endpoints in web server access logs; also monitor for unexpected changes to Bazarr configuration files (e.g., config.yaml) or anomalous outbound requests containing X-Plex-Token headers to external domains.
Prioritized remediation
Upgrade to Bazarr version 1.5.7-beta.14 or later, which adds authentication to the affected endpoints and implements proper OAuth state validation.
auth-bypassssrfcredential-theftconfig-tamperingdosweb

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

Bazarr is a companion application to Sonarr and Radarr. Prior to 1.5.7-beta.14, the `api_ns_plex` namespace in `bazarr/api/plex/oauth.py` omits `@authenticate` on its Resource handlers, while normal APIs require an API key and no global authentication hook compensates. Anonymous callers can invoke `POST /api/plex/oauth/logout` to clear credentials and disable the integration, or `POST /api/plex/apikey` to persist an attacker-selected key, without a PIN, account or state precondition. `POST /api/plex/oauth/pin` and `GET /api/plex/oauth/pin/<pin_id>/check` additionally allow an attacker who completes a PIN with an attacker-controlled Plex account to bind that account's token to the instance. `PlexPinCheck` skips state validation when `state_param` is absent and merely logs a mismatch without stopping execution. `POST /api/plex/select-server`, `POST /api/plex/oauth/servers`, `POST /api/plex/webhook/create`, `POST /api/plex/webhook/delete` and `POST /api/plex/encrypt-apikey` expose further `write_config()` operations. Attacker-controlled server URLs feed later outbound requests carrying the configured API key in `X-Plex-Token`, enabling server-side request forgery and credential exposure in addition to persistent configuration tampering and integration denial of service. Version 1.5.7-beta.14 closes the anonymous API-mutation path by adding authentication; complete OAuth state validation is not established and remains a separate residual for curator review.

CVSS vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Weaknesses

CWE-352, CWE-862

Public exploit & PoC references

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.