Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain admin session or API key
-
DeliverySubmit crafted cron value to newsletter config
-
ExploitPayload stored in newsletters DB table
-
ExecutionAdmin opens newsletter config modal
-
ImpactUnescaped cron executes JS in Tautulli web context
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the attacker to already possess Tautulli administrator access OR a valid Tautulli API key to write a crafted value into the newsletter 'cron' field (stored in the newsletters table). Execution is passive but conditional: a legitimate administrator must subsequently open the newsletter configuration modal in data/interfaces/default/newsletter_config.html, at which point the unescaped cron value runs as JavaScript. Limiting factors: high privilege prerequisite (admin or API key), required victim interaction (admin opening the specific modal), and the payload being confined to the Tautulli web/browser context rather than the server. Note the payload persists in the database and continues to fire even after API-key/credential rotation until the malicious newsletter entry is manually removed. |
| Impact | This is a genuinely LOW-priority stored XSS whose high-sounding CWE-79 label overstates real-world urgency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N, score 4.8) tells the real story: exploitation requires PR:H - the attacker must already hold Tautulli administrator access or a valid Tautulli API key to write the malicious cron value - and UI:P, meaning payload execution only fires when an administrator later opens the newsletter configuration modal. The vulnerable-system impacts are all N; only the subsequent-system (browser) metrics SC:L/SI:L are set, reflecting limited script execution in the web context rather than server compromise. No EPSS score, no CISA KEV listing, and no public exploit code are present in the input, so exploitation status is 'no public exploit identified at time of analysis.' The one aggravating nuance the vendor flags - persistence across credential rotation, since the payload lives in the newsletters DB table until manually removed - raises cleanup importance but does not change the fact that an attacker who can plant it already possesses admin/API-key privilege. Net: real but low, and largely self-XSS-shaped (admin attacks admin) rather than a widespread remote threat. No signals conflict; the CVSS 4.0 vector, description, and source-code diff are mutually consistent. |
| Exploit ScenarioDerived | An attacker who has obtained a Tautulli admin session or leaked API key stores a crafted newsletter cron value containing a JavaScript-breaking payload, which is persisted in the newsletters table. Later, when a legitimate administrator opens the newsletter configuration modal, the unescaped cron value is interpolated into a JavaScript string and executes in the Tautulli web context. No public exploit code is identified, but the vulnerable sink is confirmed by the vendor commit diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Stored cross-site scripting in Tautulli versions prior to 2.17.2 allows a caller who already holds Tautulli administrator privileges or a valid Tautulli API key to persist crafted JavaScript inside the newsletter 'cron' field, which is then executed in the browser of an administrator who simply opens the newsletter configuration modal. The payload is stored in the newsletters table and keeps firing after API-key or credential rotation until the affected newsletter entry is manually deleted, giving the flaw a persistence property that outlives routine remediation. Exploitation requires high privilege to plant the value and a separate administrator interaction to trigger it, so no public exploit code has been identified and the practical risk is low; both the upstream advisory and the vendor release v2.17.2 confirm this is a genuine but low-urgency issue rather than a remotely exploitable, unauthenticated attack.
RemediationAI
Upgrade to Tautulli 2.17.2 or later, which is the vendor-released patch containing the json.dumps-based JSON encoding fix for the cron field in newsletter_config.html (release notes at https://github.com/Tautulli/Tautulli/releases/tag/v2.17.2, advisory at https://github.com/Tautulli/Tautulli/security/advisories/GHSA-r6pg-vqxj-v75j, commit at https://github.com/Tautulli/Tautulli/commit/12761b2d01e78f22e54e8ad8d3133931147cbb77). Because the payload persists in the newsletters table, patching alone does not purge an already-planted value: audit and delete any newsletter rows containing unexpected characters such as single quotes, backslashes, or newlines in the cron column, since the malicious entry will otherwise keep executing for administrators even after the software update and even after API keys are rotated. Compensating controls for environments that cannot upgrade immediately: revoke or rotate the Tautulli API key and restrict its distribution so untrusted callers cannot write to the newsletters table (this does not remove an existing payload and does not help if an administrator account itself is the threat actor), disable or avoid the newsletter feature entirely, and restrict reachability of the Tautulli web UI to a trusted management network or VPN so that a planted payload has fewer administrator browsers to reach - accepting the trade-off that the interface becomes unavailable to remote staff. Treat any Tautulli administrator account or API key as a trusted credential, since this issue requires that level of access to plant and is not remotely exploitable by an unauthenticated attacker.
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 root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a JavaScript-string context injection rather than an HTML-context injection. Tautulli is a Python application that serves its UI through templates under data/interfaces/default/; newsletter_config.html previously interpolated the stored cron expression directly into JavaScript string literals - both in a jQuery $('#cron_value').val('...') call and in a cron_widget.cron('value', '...') call - using only the Jinja 'n' filter, which disables HTML autoescaping but performs no JavaScript escaping. Because a single quote, backslash, or newline in the cron value closes the string literal, attacker-controlled JavaScript is parsed as code when the modal renders. The upstream commit 12761b2d01e78f22e54e8ad8d3133931147cbb77 fixes this by rendering the value with json.dumps(...) so the cron string is emitted as a properly quoted and escaped JSON literal before the 'n' filter is applied, preserving the legitimate cron display behavior while eliminating the escape path. The data originates from the newsletters table, which is what makes the bug stored rather than reflected, and the affected component set is captured by the CPE cpe:2.3:a:tautulli:tautulli:*:*:*:*:*:*:*:*.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
PR:H because storing the payload needs admin or API-key access; UI:R and S:C because a separate admin's browser must open the modal to execute JS in a different security context; C/I limited, 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 newsletter cron field stored in the newsletters table is inserted by data/interfaces/default/newsletter_config.html into a JavaScript string without safe JSON encoding. An administrator or caller with the Tautulli API key can store a crafted cron value, and an administrator who later opens the newsletter configuration modal passively triggers script execution in the Tautulli web context. The stored value persists in the database and can continue to execute after credential rotation until it is removed. 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
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
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-84069
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB