Skip to main content

Tautulli CVE-2026-49995

| EUVDEUVD-2026-84069 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-09-21 GitHub_M
4.8
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain admin session or API key
  2. Delivery
    Submit crafted cron value to newsletter config
  3. Exploit
    Payload stored in newsletters DB table
  4. Execution
    Admin opens newsletter config modal
  5. Impact
    Unescaped 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
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 – 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

Tautulli < 2.17.2

Affected Packages

euvd tautulli fix: 2.17.2

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

Vendor (GitHub_M) PRIMARY 4.8 MEDIUM
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
vuln.today AI 4.8 MEDIUM

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.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
High
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 21, 2026 - 20:02 EUVD

DescriptionCVE.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

EPSS Score
0.3%
Top 72% exploitable
Prevalence
Low
niche self-hosted homelab Plex Media Server monitoring tool
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2026-31831 HIGH POC
8.7 Mar 30

Path traversal in Tautulli's /newsletter/image/images API endpoint allows unauthenticated remote attackers to read arbit

CVE-2025-58760 HIGH POC
7.5 Sep 09

Unauthenticated path traversal in Tautulli 2.15.3 and earlier allows remote attackers to read arbitrary files from the s

CVE-2025-58761 HIGH POC
7.5 Sep 09

Path traversal in Tautulli 2.15.3 and earlier allows unauthenticated remote attackers to read arbitrary files through th

CVE-2025-58762 HIGH POC
7.2 Sep 09

Remote code execution in Tautulli through 2.15.3 requires pre-existing administrative access: an attacker who can repoin

CVE-2025-58763 HIGH POC
7.2 Sep 09

Command injection in Tautulli 2.15.3 and earlier lets an authenticated administrator achieve remote code execution on th

CVE-2019-19833 MEDIUM POC
6.5 Dec 18

In Tautulli 2.1.9, CSRF in the /shutdown URI allows an attacker to shut down the remote media server. Rated medium sever

CVE-2019-8939 MEDIUM POC
6.1 Feb 19

data/interfaces/default/history.html in Tautulli 2.1.26 has XSS via a crafted Plex username that is mishandled when cons

CVE-2026-43986 CRITICAL
9.9 Jun 04

Unauthenticated server-side request forgery in Tautulli versions prior to 2.17.1 allows remote attackers to coerce the T

CVE-2026-41065 HIGH
8.9 Jun 04

Remote code execution in Tautulli versions prior to 2.17.1 allows attackers to achieve unauthenticated RCE on fresh inst

CVE-2026-43984 HIGH
8.9 Jun 04

Stored cross-site scripting in Tautulli before 2.17.1 allows low-privilege authenticated users (including guests when gu

CVE-2026-43985 HIGH
8.8 Jun 04

Cross-site request forgery in Tautulli versions prior to 2.17.1 allows remote attackers to hijack administrator accounts

CVE-2026-28505 HIGH
7.5 Mar 30

Remote code execution in Tautulli (Python-based Plex Media Server monitoring tool) versions prior to 2.17.0 allows authe

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