Description
djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to 1.0.4, LiveViewConsumer.handle_mount sends a `{"type":"navigate","to":...}` frame when login_required, permission_required, or a redirecting on_mount hook denies a LiveView mount, but returns without closing the WebSocket or clearing self.view_instance. A browser follows the redirect, but a raw WebSocket client can ignore it and retain the mounted socket. Because LiveViewConsumer.handle_event does not recheck authentication or authorization, the client can send `{"type":"event",...}` frames that invoke @event_handler methods without an authenticated session, including through handle_live_redirect_mount, enabling unauthorized sensitive reads or mutations. This issue is fixed in version 1.0.4.
Published: 2026-08-25
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: Authentication Bypass
Action: Immediate Patch
AI Analysis

Impact

The vulnerability occurs in the djust LiveView consumer when a user with an authentication requirement or a redirecting on_mount hook denies a mount request. Instead of closing the WebSocket, the server sends a navigation frame and leaves the socket open. Because LiveViewConsumer.handle_event does not re‑check authentication, any raw WebSocket client that ignores the redirect can continue to dispatch event frames that trigger server‑side event handlers. This allows an unauthenticated client to invoke privileged logic, potentially reading or modifying sensitive data. The weakness stems from improper authorization (CWE-285) and missing authentication (CWE-306).

Affected Systems

The affected product is djust provided by djust-org. All releases prior to 1.0.4 are vulnerable; the fix is included in release 1.0.4.

Risk and Exploitability

The CVSS score of 8.2 indicates a high severity with potential for authentication bypass and privilege escalation. EPSS is not available, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector is a raw WebSocket client that can reach the LiveView endpoint, which must know the event signatures and accept the redirect. While the attack requires some knowledge of the event handling mechanisms, an attacker with network access to the exposed endpoint can exploit the flaw to invoke arbitrary event handlers and obtain unauthorized data or alter state, representing a significant security risk.

Generated by OpenCVE AI on August 25, 2026 at 21:08 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade djust to version 1.0.4 or later to apply the fix.
  • Configure the server to close WebSocket connections immediately after a redirect or authentication failure, preventing the persistence of unauthorized sockets.
  • Implement an additional authentication check within LiveViewConsumer.handle_event (or equivalent) so that each incoming event frame is validated against the current authentication state before invoking any event handlers.

Generated by OpenCVE AI on August 25, 2026 at 21:08 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-xx4j-w367-7247 djust authentication bypass: a login_required / on_mount LiveView mount redirect does not close the WebSocket, allowing an unauthenticated client to dispatch event-handler calls
History

Fri, 28 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Djust-org
Djust-org djust
Vendors & Products Djust-org
Djust-org djust

Tue, 25 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 25 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Description djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to 1.0.4, LiveViewConsumer.handle_mount sends a `{"type":"navigate","to":...}` frame when login_required, permission_required, or a redirecting on_mount hook denies a LiveView mount, but returns without closing the WebSocket or clearing self.view_instance. A browser follows the redirect, but a raw WebSocket client can ignore it and retain the mounted socket. Because LiveViewConsumer.handle_event does not recheck authentication or authorization, the client can send `{"type":"event",...}` frames that invoke @event_handler methods without an authenticated session, including through handle_live_redirect_mount, enabling unauthorized sensitive reads or mutations. This issue is fixed in version 1.0.4.
Title djust authentication bypass: a login_required / on_mount LiveView mount redirect does not close the WebSocket, allowing an unauthenticated client to dispatch event-handler calls
Weaknesses CWE-285
CWE-306
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-25T17:56:03.253Z

Reserved: 2026-06-16T23:11:20.214Z

Link: CVE-2026-55571

cve-icon Vulnrichment

Updated: 2026-08-25T17:54:53.303Z

cve-icon NVD

Status : Deferred

Published: 2026-08-25T17:17:32.547

Modified: 2026-09-09T21:07:31.353

Link: CVE-2026-55571

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T20:36:54Z

Weaknesses
  • CWE-285

    Improper Authorization

  • CWE-306

    Missing Authentication for Critical Function