Summary
CVE-2026-61599 is an unauthenticated arbitrary module import vulnerability in djust, a Django library that provides Phoenix LiveView-style reactive server-side rendering over WebSocket and Server-Sent Events (SSE). The framework resolves the LiveView component to mount by calling Python’s __import__ on a client-supplied dotted module path before any authentication check or verification that the resolved object is actually a LiveView subclass, allowing a remote, unauthenticated attacker to trigger execution of arbitrary Python module import-time code. The issue is rated High severity (CVSS 8.8) and affects all djust versions prior to 1.0.7.
Technical details
- Root cause: djust’s mount-resolution logic accepts a client-supplied dotted module path over WebSocket or SSE and passes it directly to
__import__()to locate the LiveView class to mount, executing that module’s top-level (import-time) code as a side effect. - Fail-open allowlist: The optional
LIVEVIEW_ALLOWED_MODULESsetting, intended to restrict which modules may be mounted, is skipped entirely when unset (the framework default), and even when configured it uses loosestartswithprefix matching rather than exact module-boundary matching, making it bypassable. - Pre-authentication execution: The vulnerable import occurs before the framework verifies the resolved object is a genuine
LiveViewsubclass and before any per-view authentication is enforced. - Attack surface: Three code paths are affected —
handle_mountinwebsocket.py,ViewRuntime.dispatch_mountinruntime.py, and the SSE mount handlers insse.py. - Attack vector / complexity: Network-exploitable, low attack complexity, no authentication or user interaction required.
- Impact: Execution of arbitrary Python module code as a side effect of import, which can lead to remote code execution, information disclosure, or further compromise of the hosting application, depending on which importable modules are reachable in the server’s Python path.
Affected software
- djust (djust-org) versions prior to 1.0.7
Severity
- CVSS Score: 8.8 (High)
- CVSS v4.0 Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N - CWE-470: Use of Externally-Controlled Input to Select Classes or Code (Unsafe Reflection)
Mitigation and recommended actions
- Immediate: Upgrade djust to version 1.0.7 or later, which introduces a fail-closed resolution gate that validates module imports against
sys.modulesor an explicitLIVEVIEW_ALLOWED_MODULESconfiguration before performing the import. - If immediate patching is not possible:
- Explicitly configure
LIVEVIEW_ALLOWED_MODULESto a narrow, precise list of modules that contain your mountable LiveView classes (note: on unpatched versions this control is bypassable via prefix matching and does not fully close the issue). - Restrict network exposure of WebSocket and SSE endpoints (e.g., via authentication at a reverse proxy or network-layer access controls) until the upgrade can be applied.
- Monitor WebSocket/SSE mount requests for unexpected or unusual dotted module paths.
- Explicitly configure

