Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Bazarr API over network
-
DeliverySend unauthenticated POST to /api/plex endpoints
-
ExploitPersist attacker apikey and server URL
-
ExecutionBazarr issues outbound request with X-Plex-Token
-
ImpactExfiltrate 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 |
| 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 |
| Exploit ScenarioDerived | An attacker who can reach a Bazarr instance's API over the network sends |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
An issue in the component /api/swaggerui/static of Bazaar v1.4.3 allows unauthenticated attackers to execute a directory
Bazarr manages and downloads subtitles. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Bazarr manages and downloads subtitles. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a
Bazarr manages and downloads subtitles. Rated medium severity (CVSS 5.3), this vulnerability is remotely exploitable, no
EUVD-2026-114256
NVD
CVE.org
EPSS
GitHub
Exploit-DB