CVE-2026-28505
Published: 30 March 2026
Summary
CVE-2026-28505 is a critical-severity Code Injection (CWE-94) vulnerability in Tautulli Tautulli. Its CVSS base score is 10.0 (Critical).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 7.7th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.
The strongest mitigations our analysis identified are NIST 800-53 SI-10 (Information Input Validation) and SI-2 (Flaw Remediation).
Threat & Defense at a Glance
Threat & Defense Details
Mitigating Controls (NIST 800-53 r5)AI
Requires timely patching of the str_eval() sandbox bypass vulnerability as fixed in Tautulli version 2.17.0 to eliminate arbitrary code execution.
Mandates validation of untrusted notification text templates to block malicious lambda expressions stored in nested code.co_consts that evade co_names inspection.
Restricts execution of dynamic mobile code like user-supplied Python lambdas in the sandboxed eval() function to prevent unauthorized code injection.
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
The CVE describes an unauthenticated remote code injection vulnerability in the publicly accessible Tautulli web application (Python-based), directly enabling T1190 (Exploit Public-Facing Application) to achieve arbitrary code execution via the Python interpreter (T1059.006).
NVD Description
Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to version 2.17.0, the str_eval() function in notification_handler.py implements a sandboxed eval() for notification text templates. The sandbox attempts to restrict callable names by inspecting code.co_names…
more
of the compiled code object. However, co_names only contains names from the outer code object. When a lambda expression is used, it creates a nested code object whose attribute accesses are stored in code.co_consts, NOT in code.co_names. The sandbox never inspects nested code objects. This issue has been patched in version 2.17.0.
Deeper analysisAI
CVE-2026-28505 is a critical vulnerability in Tautulli, a Python-based monitoring and tracking tool for Plex Media Server. The issue resides in the str_eval() function within notification_handler.py, which implements a sandboxed eval() for processing notification text templates. The sandbox restricts callable names by inspecting code.co_names of the compiled code object, but this only covers names from the outer code object. Lambda expressions create nested code objects where attribute accesses are stored in code.co_consts, which the sandbox does not inspect, allowing bypass of the restrictions. This affects Tautulli versions prior to 2.17.0 and is classified under CWE-94 (Code Injection) and CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code), with a CVSS v3.1 score of 10.0 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H).
Remote attackers without authentication can exploit this vulnerability over the network with low complexity and no user interaction. By crafting malicious notification text templates containing lambda expressions, attackers bypass the sandbox and execute arbitrary Python code on the Tautulli server. This grants high-impact confidentiality, integrity, and availability violations, including full remote code execution in a changed scope, potentially compromising the host system running Plex Media Server.
The vulnerability has been patched in Tautulli version 2.17.0, as detailed in the project's release notes and security advisory. Security practitioners should upgrade to this version or later to mitigate the issue, and review any custom notification templates for potential exploitation vectors. Relevant advisories are available at the Tautulli GitHub release page and GitHub Security Advisory GHSA-m62j-gwm9-7p8m.
Details
- CWE(s)