Skip to main content

Bazarr EUVDEUVD-2026-114256

| CVE-2026-61826 CRITICAL
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-10-30 GitHub_M
10.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach Bazarr API over network
  2. Delivery
    Send unauthenticated POST to /api/plex endpoints
  3. Exploit
    Persist attacker apikey and server URL
  4. Execution
    Bazarr issues outbound request with X-Plex-Token
  5. Impact
    Exfiltrate credential and tamper integration

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

No special conditions for the core takeover - remote unauthenticated exploitation against default configurations of Bazarr prior to 1.5.7-beta.14, because the api_ns_plex handlers ship without the @authenticate decorator and are reachable by any caller that can send HTTP requests to the /api/plex/... routes. The /oauth/logout and /apikey sinks need no PIN, Plex account or OAuth state. What LIMITS impact: the attacker must have network reachability to the Bazarr API (internet exposure or same-network access); SSRF credential exposure via X-Plex-Token is only meaningful when a Plex integration/token is already configured on the instance; and binding an attacker's Plex account requires driving the /oauth/pin then /oauth/pin/<id>/check flow with an attacker-controlled Plex account. Availability impact is confined to the Plex integration, not the whole application.

Impact

The signals are unusually consistent in pointing to high real-world risk. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H, base 10.0) describes a network-reachable flaw requiring no privileges, no user interaction and low complexity, and the GHSA advisory corroborates the mechanism directly from source code: the entire api_ns_plex namespace in bazarr/api/plex/oauth.py omits the @authenticate decorator that its 65 sibling handlers carry, and no global auth hook compensates. The vuln.today Decision label is act_now, which aligns with the trivially-exploitable, unauthenticated nature. Two signals are absent rather than conflicting: no EPSS probability and no CISA KEV status are provided in the input, so widespread or confirmed active exploitation cannot be asserted - this is not currently a known-exploited vulnerability. No PoC or exploit reference is supplied either; the references are the vendor advisory and the fix commits, not working exploit code, so this should be treated as 'no public exploit identified at time of analysis' despite how mechanically simple exploitation is. The one metric worth scrutiny is A:H: the described availability impact is persistent denial of the Plex integration specifically (clearing credentials, setting use_plex=False), not of the whole application, so the raw 10.0 slightly overstates availability damage even though confidentiality (apikey/token exposure via SSRF) and integrity (persistent config tampering, binding an attacker's Plex token) are genuinely high. Net: this is a real, high-priority issue on the merits - not a high-CVSS-but-low-real-risk case - though its blast radius is scoped to internet- or network-exposed Bazarr instances.

Exploit ScenarioDerived

An attacker who can reach a Bazarr instance's API over the network sends POST /api/plex/apikey and POST /api/plex/oauth/servers with no API key, persisting an attacker-chosen apikey and an attacker-controlled server URL into the saved configuration. When Bazarr subsequently issues outbound requests.get(server_url, ...) calls, it forwards the configured credential in the X-Plex-Token header to the attacker's endpoint, yielding SSRF and credential exposure; alternatively POST /api/plex/oauth/logout alone wipes the integration for a persistent denial of service. No public exploit code is identified at time of analysis, but the GHSA advisory documents each sink by file and line and exploitation requires only unauthenticated HTTP requests.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 30, 2026

Any remote, unauthenticated caller who can reach a Bazarr instance's /api/plex/ endpoints can persistently rewrite its Plex configuration: POST /api/plex/oauth/logout clears the stored token, API key and server URL and disables the integration outright, while POST /api/plex/apikey stores an attacker-chosen key, and the unauthenticated /api/plex/oauth/pin plus pin/<id>/check pair lets an attacker bind their own Plex account token to the instance. The root cause is that the api_ns_plex namespace in bazarr/api/plex/oauth.py ships without the per-handler @authenticate decorator that all 65 sibling API handlers carry, and no global authentication hook compensates. Every release up to and including 1.5.6 is affected, and the vendor closed the anonymous API-mutation path in 1.5.7-beta.14; the CVE record is scored CVSS 10.0 and the vulnerability carries an act_now priority decision, though no public exploit code was identified at time of analysis. Attackers can additionally abuse attacker-supplied server URLs that are later fetched with the configured API key in an X-Plex-Token header, producing server-side request forgery and credential exposure against instances where a Plex integration is already configured.

RemediationAI

Vendor-released patch: upgrade to Bazarr 1.5.7-beta.14 or later (fixed range >= 1.5.7-beta.14, fixed tree https://github.com/morpheus65535/bazarr/tree/v1.5.7-beta.14), which adds the missing @authenticate requirement to the config-writing handlers in bazarr/api/plex/oauth.py so /oauth/logout, /apikey, /select-server, /oauth/servers and the webhook/* endpoints require the API key; the corresponding commits are https://github.com/morpheus65535/bazarr/commit/4bd29252feebd0803e84cc3ce1bdd24c3a076ed4 and https://github.com/morpheus65535/bazarr/commit/f9a8a9514944be0e7b826e67cde042cebfe9c97e, referenced from advisory GHSA-fvcv-hh55-x3r4. The same commit also returns HTTP 403 with code CSRF_STATE_MISMATCH on a detected OAuth state mismatch and hardens the API-key comparison so an unset configured key can no longer match a request that supplies no key; note that the CVE description states complete OAuth state validation is not established in 1.5.7-beta.14 and remains a residual for review, since the state check may still be skipped when state_param is absent. For instances that cannot be upgraded immediately, the exposure is structural - the endpoints have no authentication at all - so the only effective interim control is to restrict reachability of the /api/plex/ paths, for example by blocking them at a reverse proxy or firewall or limiting the whole Bazarr UI/API to trusted networks; the trade-off is that legitimate Plex integration setup and re-authentication through those routes will fail until the restriction is lifted, and any attacker-supplied settings.plex.server_url or settings.plex.apikey already written should be reviewed and reset after patching.

Affected VersionsENISA

bazarr < 1.5.7-beta.14

Affected Packages

euvd bazarr fix: 1.5.7-beta.14

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Bazarr is a Python/Flask application (companion to Sonarr and Radarr) whose REST API is built with Flask-RESTX namespaces mapped under /api/. Authentication is applied per handler rather than globally: each Resource method is wrapped with the @authenticate decorator defined in bazarr/api/utils.py, which compares the configured API key against X-API-KEY, the ?apikey= query parameter or a form apikey field and aborts with 401 on failure. There is no global before_request authentication hook - the only one registered in bazarr/app/app.py merely opens the database - so any namespace that omits the decorator becomes fully anonymous. That is precisely the defect here: the entire api_ns_plex namespace in bazarr/api/plex/oauth.py lacks the decorator, and only system/ping and the login endpoint are legitimately anonymous elsewhere in the codebase. The primary root-cause class is CWE-306 (missing authentication for critical function); the supplied advisory also maps the issue to CWE-352 and CWE-918. The CWE-352 angle exists because the sole OAuth state-token check, in PlexPinCheck, is non-enforcing: it is guarded by if state_param: so the check is skipped entirely when the parameter is omitted, and on mismatch it only writes a warning log without returning or aborting, so execution continues. The CWE-918 angle exists because several of the unauthenticated write_config() sinks persist a caller-supplied settings.plex.server_url, and that value is used in subsequent outbound requests.get(server_url, ...) calls that carry the configured API key in the X-Plex-Token header. Per the CPE cpe:2.3:a:morpheus65535:bazarr, all versions of the Bazarr application are in scope, with the vulnerable code present through 1.5.6.

Know when Bazarr gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 10.0 CRITICAL

Unauthenticated network handlers lacking @authenticate give AV:N/AC:L/PR:N/UI:N; SSRF forwarding credentials beyond Bazarr justifies S:C; config/token exposure and tampering are C:H/I:H; availability loss is limited to the Plex integration, so A:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:L/SC:L/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 19:03 EUVD
CVE Published
Oct 30, 2026 - 17:12 cve.org
CRITICAL 10.0

DescriptionCVE.org

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.

Technical POC Analysis

Primary bug class is CWE-306: Missing Authentication for Critical Function.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

The critical vulnerability in Bazarr (CVSS 10.0) allows any unauthenticated remote attacker to take full control of its Plex integration by rewriting configuration, which can disrupt subtitle management workflows for all media users and potentially expose sensitive credentials. Leadership should prioritize immediate remediation because exploitation requires no authentication and the vendor has not yet released a patched stable version, leaving the organization exposed to service disruption and unauthorized access.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations include restricting network access to Bazarr's /api/plex/ endpoints via firewall or reverse proxy authentication, deploying WAF rules to block unauthenticated POST requests to those paths, and upgrading to the vendor's fixed beta release 1.5.7-beta.14 if operationally acceptable.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Low
self-hosted hobbyist media companion for Sonarr/Radarr, niche footprint
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

50
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +50
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy