Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

Skip to content
Check your stack
CVE-2026-61826critical10.0

Bazarr: Plex OAuth API namespace is entirely unauthenticated, allowing config tampering, integration takeover and server-side request forgery

Impact

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//check additionally allow an attacker who completes a PIN with…

Source excerpt · GitHub_M
Applies when

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.

Affected packages

This source has no supported package-version data for matching. You can read the advisory here, but this record alone cannot power a dependency check.

Affected products

Vendor version evidence. Product records are separate from automatic dependency matching.

morpheus65535 · GitHub_M

bazarr

1 range

Compare with this publisher’s ranges. This does not inspect your installation.

affected

< 1.5.7-beta.14

unaffected

unknown

Other versions: unknown

Original source 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.

Inside the record

Evidence available

Package identity · not supplied
Version evidence
Remediation guidance · not supplied
Weakness classification
Additional publishers · not supplied

Describes the evidence in this view, not whether the product is safe.

Original records

CVE-2026-61826

View the latest unmodified CVE JSON from the official source. It may be newer than this imported page.

cve.new JSON →

Underlying weaknesses

The source’s classification of what caused the vulnerability.

CWE-352 ↗

CWE-352: Cross-Site Request Forgery (CSRF)

GitHub_M

Related →
CWE-862 ↗

CWE-862: Missing Authorization

GitHub_M

Related →
Contributing organizations · 1
GitHub_M

Assigning organization

2026-10-30

What changed

Follow changes
No substantive changes have been recorded here yet. History starts when cve.new observes a change after tracking is enabled; earlier edits are not reconstructed.

Large field values are marked as truncated previews. Original source snapshots remain retained.

References

4 sources