---
id: CVE-2026-61826
title: >-
  Bazarr: Plex OAuth API namespace is entirely unauthenticated, allowing config
  tampering, integration takeover and server-side request forgery
summary: >-
  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 …
severity: critical
cvss: 10
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-352
  - CWE-862
vendor: morpheus65535
product: bazarr
affected:
  - bazarr < 1.5.7-beta.14
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-11-05T02:24:51.591160Z'
published: '2026-10-30'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T02:25:08.949Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-61826'
references:
  - url: >-
      https://github.com/morpheus65535/bazarr/security/advisories/GHSA-fvcv-hh55-x3r4
    label: >-
      https://github.com/morpheus65535/bazarr/security/advisories/GHSA-fvcv-hh55-x3r4
  - url: >-
      https://github.com/morpheus65535/bazarr/commit/4bd29252feebd0803e84cc3ce1bdd24c3a076ed4
    label: >-
      https://github.com/morpheus65535/bazarr/commit/4bd29252feebd0803e84cc3ce1bdd24c3a076ed4
  - url: >-
      https://github.com/morpheus65535/bazarr/commit/f9a8a9514944be0e7b826e67cde042cebfe9c97e
    label: >-
      https://github.com/morpheus65535/bazarr/commit/f9a8a9514944be0e7b826e67cde042cebfe9c97e
  - url: 'https://github.com/morpheus65535/bazarr/tree/v1.5.7-beta.14'
    label: 'https://github.com/morpheus65535/bazarr/tree/v1.5.7-beta.14'
tags:
  - cve.org
epss: 0.00263
epssPercentile: 0.18278
ingestedAt: '2026-11-05T21:36:00.685Z'
---

## Overview

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.

## Affected

- `bazarr < 1.5.7-beta.14`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
