CVE-2026-61590: djust's observability endpoints are network-exposed: the localhost gate is an opt-in middleware the docs omit, and the views enforce only DEBUG
Impact djust's observability endpoints expose live view/session state and a remote method-invocation surface (evalhandler). The localhost restriction was an opt-in middleware that the documented setup omits; the views themselves enforced only DEBUG. In the misconfigured-but-documented scenario (DEBUG on, middleware not installed) a non-localhost client could read live application state and invoke handlers remotely.
Patches Fixed in djust 1.0.7. The localhost restriction is enforced in-view on every observability endpoint (no longer dependent on a separately-installed middleware), and evalhandler is restricted; gated requests receive a non-disclosing response.
Workarounds Ensure DEBUG=False in production, and do not expose the observability endpoints to untrusted networks.
Other sources
djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, djust's observability endpoints expose live view/session state and a remote method-invocation surface (evalhandler). The localhost restriction was an opt-in middleware that the documented setup omits; the views themselves enforced only DEBUG. In the misconfigured-but-documented scenario (DEBUG on, middleware not installed) a non-localhost client could read live application state and invoke handlers remotely. This issue is fixed in djust 1.0.7. The localhost restriction is enforced in-view on every observability endpoint (no longer dependent on a separately-installed middleware), and evalhandler is restricted; gated requests receive a non-disclosing response. As a workaround, ensure DEBUG=False in production, and do not expose the observability endpoints to untrusted networks.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/djustto a version that resolves this vulnerability.Fixed in 1.0.7 - Upgrade
Upgrade
djustto a version that resolves this vulnerability.Fixed in 1.0.7 - Configuration
Set DEBUG=False in production to reduce exposure of djust observability endpoints and related handler surfaces.
djust (production deployment) DEBUG = False - Compensating control
Do not expose djust observability endpoints to untrusted networks (only allow trusted network access).
Event History
Frequently Asked Questions
Which deployments are exposed?
Deployments using djust with DEBUG enabled and without the opt-in localhost-restriction middleware are exposed if their observability endpoints are reachable by non-localhost clients. This matches the documented setup described in the advisory.
What can an unauthenticated remote attacker do?
A non-localhost client can read live view and session state and invoke handlers through the eval_handler remote method-invocation surface. Exploitation requires network access to the exposed observability endpoints; no privileges or user interaction are indicated.
Does upgrading remove the middleware dependency?
Yes. djust 1.0.7 enforces the localhost restriction within every observability view rather than relying on separately installed middleware, and it restricts eval_handler.
What should be done if an immediate upgrade is not possible?
Set DEBUG=False in production and ensure observability endpoints are not exposed to untrusted networks. These measures address the conditions that allow non-localhost access.