Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
6DescriptionGitHub Advisory
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 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.
AnalysisAI
Remote code execution in Tautulli (Python-based Plex Media Server monitoring tool) versions prior to 2.17.0 allows authenticated administrators to bypass sandbox restrictions in notification templates via lambda expressions, enabling arbitrary Python code execution. The vulnerability exploits a flaw in the str_eval() sandbox implementation that only inspects outer code object names (co_names) while nested lambda code objects store attribute accesses in co_consts, evading security checks. CVSS 7.5 with high attack complexity and high privilege requirement (PR:H) indicates limited real-world risk scope, with no public exploit identified at time of analysis.
Technical ContextAI
The vulnerability resides in Tautulli's notification_handler.py module, specifically within the str_eval() function that implements a sandboxed eval() mechanism for processing notification text templates. The sandbox's security model relies on whitelisting callable names by examining the code.co_names attribute of compiled Python code objects. However, this approach exhibits a fundamental design flaw in handling nested code structures: when lambda expressions are compiled, Python creates separate nested code objects with their own attribute access patterns stored in code.co_consts rather than the parent's co_names. The sandbox implementation fails to recursively inspect these nested code objects, creating a bypass vector. This is classified as CWE-94 (Improper Control of Generation of Code / Code Injection), representing a classic sandbox escape vulnerability where insufficient input validation allows execution of arbitrary code within a supposedly restricted environment. The affected product is identified as cpe:2.3:a:tautulli:tautulli:*:*:*:*:*:*:*:*, specifically targeting all versions before 2.17.0.
RemediationAI
Upgrade immediately to Tautulli version 2.17.0 or later, which contains comprehensive patching of the str_eval() sandbox escape vulnerability. The patched release is available at https://github.com/Tautulli/Tautulli/releases/tag/v2.17.0 with full release notes and installation instructions. The fix implements recursive inspection of nested code objects within the sandbox validation logic, closing the lambda expression bypass vector. Organizations unable to immediately upgrade should implement compensatory controls including restricting administrative access to Tautulli interfaces to trusted network segments only, implementing multi-factor authentication for administrator accounts, auditing existing notification templates for suspicious lambda expressions or complex Python constructs, and monitoring Tautulli logs for unusual notification processing activity. No workaround disables the vulnerable functionality while maintaining notification capabilities, making version upgrade the only complete remediation path.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
Cross-user flow execution in Langflow (< 1.9.1) lets any authenticated API-key holder run another user's flow by passing
Same weakness CWE-94 – Code Injection
View allSame technique Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-17184