CVE-2026-108264 in Wizarr
Summary
by MITRE • 10/10/2026
Wizarr is an advanced user invitation and management system for Jellyfin, Plex, Emby, and other media servers. Prior to 2026.9.1, wizard step Markdown supplied through the editor or imported bundles was evaluated by app/blueprints/wizard/routes.py in the application's non-sandboxed Jinja2 environment with application globals exposed. An authenticated user able to create steps, or an administrator importing an untrusted bundle through POST /settings/wizard/import, could execute arbitrary Python when GET /wizard/{server}/{idx} rendered the stored step; app/jinja_filters.py and app/services/wizard_widgets.py contained additional evaluation sinks. This could execute operating-system commands as the application user, disclose the Flask SECRET_KEY, access connected service credentials and the database, and produce stored cross-site scripting. This issue is fixed in 2026.9.1.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Analysis
by VulDB Data Team • 10/10/2026
Wizarr serves as a comprehensive user invitation and management system designed for popular media server platforms such as Jellyfin, Plex, and Emby. The vulnerability identified within versions prior to 2026.9.1 represents a critical security flaw rooted in the improper handling of Markdown content provided through the application's editor or imported bundles. Specifically, the issue arises from the evaluation of this Markdown input by the Jinja2 template engine running in a non-sandboxed environment with full access to application globals. This architectural decision exposes the underlying Python runtime to maliciously crafted inputs, allowing an attacker who has authenticated access and permissions to create wizard steps or an administrator importing untrusted bundles via the POST /settings/wizard/import endpoint to trigger arbitrary code execution when the stored step is rendered through GET /wizard/{server}/{idx}.
The technical core of this vulnerability lies in the use of unsafe Jinja2 evaluation mechanisms. By exposing application globals within a non-sandboxed context, the application fails to isolate template rendering from the host environment. This allows an attacker to inject Python code into Markdown fields that is subsequently executed during the rendering process. Additional evaluation sinks located in app/jinja_filters.py and app/services/wizard_widgets.py further expand the attack surface, providing multiple entry points for exploitation. The flaw aligns with CWE-94 Improper Control of Generation of Code (Code Injection) as it permits the injection and execution of arbitrary code within a web application context. Furthermore, this behavior is consistent with MITRE ATT&CK technique T1059 Command and Scripting Interpreter, where an attacker leverages system utilities or interpreters to execute commands on the target infrastructure.
The operational impact of this vulnerability is severe due to the breadth of access granted by successful exploitation. An authenticated user capable of creating steps can achieve remote code execution as the application user, effectively gaining control over the server process hosting Wizarr and its connected media services. This level of compromise enables the disclosure of sensitive configuration data such as the Flask SECRET_KEY, which is critical for maintaining session integrity and cryptographic security within the web framework. Additionally, attackers can access stored credentials for connected services like Jellyfin or Plex, retrieve database contents containing user information and metadata, and execute operating-system commands with the privileges assigned to the application process. Beyond server-side compromise, the vulnerability also facilitates Stored Cross-Site Scripting (XSS), allowing attackers to inject malicious scripts into web pages viewed by other users, thereby compromising client-side security and potentially stealing session cookies or performing actions on behalf of victims.
Mitigation for this issue requires immediate action to upgrade Wizarr to version 2026.9.1 or later, where the vulnerability has been resolved. In environments where upgrading is not immediately feasible, administrators should restrict access to wizard creation features to trusted users only and avoid importing bundles from untrusted sources until patches are applied. It is also advisable to review application configurations to ensure that template engines operate in sandboxed modes with minimal global exposure, adhering to the principle of least privilege for runtime environments. Regular security audits focusing on input validation and output encoding practices can help prevent similar code injection vulnerabilities in future development cycles.