Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft link with whitespace-laden redirect_uri
-
DeliveryDeliver via phishing to victim
-
ExploitVictim clicks Tautulli /auth/redirect link
-
Executionurljoin resolves to attacker origin
-
ImpactRedirect to phishing/credential capture
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Redirect URL validation
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 | Requires the default root HTTP_ROOT configuration of Tautulli - instances deployed under a custom non-root HTTP_ROOT path prefix are explicitly NOT affected. Exploitation is unauthenticated against the /auth/redirect endpoint but requires user interaction: the victim must follow an attacker-crafted link containing tab, line-feed, or carriage-return characters in the redirect_uri parameter. Impact is limited to redirecting the user off-site (phishing / post-login redirect-flow abuse); there is no direct code execution or data compromise on the Tautulli host itself. |
| Impact | This is a moderate-severity, low-priority open redirect (CWE-601) in Tautulli. The vendor CVSS of 5.4 (AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N) is consistent with the description: network-reachable and unauthenticated, but requiring victim interaction (UI:R) to click a crafted link, with only limited confidentiality/integrity impact and no availability impact. No EPSS score, no CISA KEV listing, and no public POC are present in the provided intelligence - the exploitation signal is therefore weak. The only cross-source corroboration comes from the vendor's own GitHub Security Advisory (GHSA-7c9r-fhj9-87xm) and the fix commit, which confirm the mechanism. Open redirects are rarely mass-exploited on their own; they are chained into phishing or OAuth/post-login redirect abuse. No conflicting signals were found, but exploitation is meaningfully gated: it only works under the default root HTTP_ROOT configuration, so deployments behind a custom non-root path prefix are not vulnerable. Overall this is a real but low-urgency issue - patch on a normal cadence rather than emergency. |
| Exploit ScenarioDerived | An attacker crafts a link to a victim's Tautulli instance whose /auth/redirect redirect_uri parameter embeds tab/CR/LF characters, which survive the incomplete slash-stripping and cause urllib.parse.urljoin to resolve to an attacker-controlled external origin. The victim clicks the link, trusts the legitimate Tautulli hostname, and is silently redirected to a phishing page or an abused post-login redirect flow. No public exploit code is identified in the provided data, though the fix commit reveals the exact bypass characters. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Open redirect in Tautulli prior to 2.17.2 lets an unauthenticated attacker redirect a victim off-site via the /auth/redirect endpoint, enabling phishing and post-login redirect-flow abuse; the CVSS vector (AV:N/AC:L/PR:N/UI:R) confirms no authentication is needed but the victim must click a crafted link. Only instances running the default root HTTP_ROOT configuration are exploitable - deployments with a custom non-root HTTP_ROOT path prefix are not affected. No public exploit code has been identified at time of analysis and the issue is not listed in CISA KEV, so this is a moderate-severity, low-priority targeted-phishing risk rather than a mass-exploitation threat; a vendor-released patch is available in 2.17.2.
RemediationAI
Vendor-released patch: upgrade to Tautulli 2.17.2 or later, which is the only release containing the fix; the change installs in commit 07f9beaa0286f1ab3b5e6be9726c5b2de07ee9dd by replacing redirect_uri.strip('/') with redirect_uri.strip('/ \t\r\n') and adding @requireAuth() to the redirect handler. Where immediate upgrade is not possible, the most effective compensating control is to run Tautulli under a custom non-root HTTP_ROOT path prefix, which the advisory states is explicitly not affected by this bypass - the trade-off is that this changes all access URLs and requires adjusting reverse-proxy rules and bookmarks. Alternatively, an upstream reverse proxy (nginx/Apache) can be configured to reject or normalize requests to /auth/redirect whose redirect_uri query parameter contains encoded or literal %09, %0A, or %0D control characters, at the cost of potentially breaking legitimate redirects that carry unusual whitespace and of requiring ongoing rule maintenance. Note that because exploitation is client-side, patching affected users' browsers or blocking external navigation cannot fully compensate on the server side; blocking outbound redirect chains at the browser or mail-gateway level only reduces the phishing payoff and does not remove the vulnerable code path.
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
The flaw is a classic CWE-601 URL redirection to an untrusted site, rooted in incomplete input sanitization of the user-controlled redirect_uri parameter in plexpy/webauth.py. The pre-fix code called redirect_uri.strip('/'), which removes only forward slashes and preserves tab, line-feed, and carriage-return characters. Under the default root HTTP_ROOT configuration, CherryPy's HTTPRedirect handler concatenates the HTTP_ROOT prefix with the attacker-supplied value and passes it to urllib.parse.urljoin; RFC 3986-compliant URL parsers strip leading tab/CR/LF characters before resolving a reference, so a value like "\t//evil.example" survives the slash-stripping and urljoin resolves it to an attacker-controlled external origin. The patched commit (07f9beaa0286f1ab3b5e6be9726c5b2de07ee9dd) widens the strip call to strip('/ \t\r\n') and adds a @requireAuth() decorator on the affected handler, closing both the whitespace bypass and the unauthenticated reachability. Because the affected component is a reverse-proxy-style redirect rather than code execution or deserialization, the impact is confined to off-site navigation of the victim's browser; the Tautulli host, its Plex data, and its credentials are not directly compromised.
Know when Tautulli 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:R/S:U/C:L/I:L/A:N
Unauthenticated network-reachable endpoint (AV:N/PR:N) but requires the victim to click a crafted link (UI:R); open redirect yields only limited C/I via phishing and no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to 2.17.2, the unauthenticated /auth/redirect endpoint in plexpy/webauth.py removes forward slashes from the user-controlled redirect_uri parameter but leaves tab, line-feed, and carriage-return characters intact. With the default root HTTP_ROOT configuration, CherryPy HTTPRedirect passes the resulting value to urllib.parse.urljoin, which can resolve the whitespace-bearing path to an attacker-controlled external origin. A user who follows a crafted link can therefore be redirected outside Tautulli for phishing or post-login redirect-flow abuse, while custom non-root HTTP_ROOT configurations are not affected by this bypass. This issue is fixed in version 2.17.2.
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
Path traversal in Tautulli's /newsletter/image/images API endpoint allows unauthenticated remote attackers to read arbit
Unauthenticated path traversal in Tautulli 2.15.3 and earlier allows remote attackers to read arbitrary files from the s
Path traversal in Tautulli 2.15.3 and earlier allows unauthenticated remote attackers to read arbitrary files through th
Remote code execution in Tautulli through 2.15.3 requires pre-existing administrative access: an attacker who can repoin
Command injection in Tautulli 2.15.3 and earlier lets an authenticated administrator achieve remote code execution on th
In Tautulli 2.1.9, CSRF in the /shutdown URI allows an attacker to shut down the remote media server. Rated medium sever
data/interfaces/default/history.html in Tautulli 2.1.26 has XSS via a crafted Plex username that is mishandled when cons
Unauthenticated server-side request forgery in Tautulli versions prior to 2.17.1 allows remote attackers to coerce the T
Remote code execution in Tautulli versions prior to 2.17.1 allows attackers to achieve unauthenticated RCE on fresh inst
Stored cross-site scripting in Tautulli before 2.17.1 allows low-privilege authenticated users (including guests when gu
Cross-site request forgery in Tautulli versions prior to 2.17.1 allows remote attackers to hijack administrator accounts
Remote code execution in Tautulli (Python-based Plex Media Server monitoring tool) versions prior to 2.17.0 allows authe
EUVD-2026-84068
NVD
CVE.org
EPSS
GitHub
Exploit-DB