Skip to main content

djust CVE-2026-55571

| EUVDEUVD-2026-65600 HIGH
Improper Authorization (CWE-285)
2026-08-25 GitHub_M GHSA-xx4j-w367-7247
8.2
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Connect raw WebSocket client to gated LiveView endpoint
  2. Delivery
    Receive {"type":"navigate"} redirect frame and ignore it
  3. Exploit
    Send crafted {"type":"event"} frame with target handler and params
  4. Execution
    handle_event dispatches without re-checking authentication
  5. Persist
    @event_handler executes under anonymous session
  6. Impact
    Unauthorized data read or state mutation completes

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK

1 technique across 1 tactic: Defense Evasion

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a non-browser WebSocket client capable of connecting to the target application's WebSocket endpoint and ignoring server-sent redirect frames - standard browsers follow the navigate frame and are not exploitable. The target application must be running djust prior to 1.0.4 and must expose at least one LiveView decorated with login_required or permission_required, or whose on_mount hook issues a redirect, and that view's @event_handler methods must not independently verify the user. The attacker must know or successfully enumerate at least one valid LiveView path and a callable event handler name on that view. What limits exploitation: the non-browser WebSocket client requirement rules out CSRF-style drive-by attacks; knowledge of specific view paths and event names is necessary; and apps where every @event_handler already independently checks request.user.is_authenticated are not vulnerable even on affected versions. Exploitation is not possible against djust 1.0.4 or later.

Impact

The CVSS 8.2 score with vector AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N accurately reflects the severity of the authentication bypass: unauthenticated network exploitation with high integrity impact and low attack complexity. The I:H rating is grounded in the fact that all state-mutating event handlers on any gated LiveView are reachable by an anonymous WebSocket client. EPSS score was not provided in the source data. There is no CISA KEV listing, so confirmed in-the-wild exploitation is not established; however, a proof-of-concept WebsocketCommunicator reproducer was disclosed in the GHSA advisory alongside the patch, lowering the bar for exploitation. The primary real-world limiting factor is that standard browsers are not exploitable - they obey the navigate frame and disconnect - which restricts opportunistic, drive-by exploitation but does not protect against targeted attacks using basic WebSocket tooling such as wscat, Python websockets, or curl. The deployment footprint of djust is niche compared to mainstream frameworks, which reduces aggregate exposure, but individual applications with sensitive mutations (write operations, data deletion, financial actions) behind login_required LiveViews face meaningful risk until patched.

Exploit ScenarioDerived

An attacker targeting a djust application uses a raw WebSocket client to connect to a known gated LiveView endpoint (e.g., /ws/live/admin-dashboard/). When the server responds with {"type":"navigate","to":"/login/"}, the client silently ignores the frame rather than disconnecting, then sends {"type":"event","name":"delete_user","params":{"user_id":99}}. Because handle_event never rechecks authentication, the delete_user handler executes under an anonymous session and completes the unauthorized mutation. A WebsocketCommunicator proof-of-concept reproducer demonstrating this bypass was disclosed as part of GHSA-xx4j-w367-7247.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 25, 2026

Authentication bypass in djust's WebSocket LiveView consumer allows unauthenticated remote clients to invoke protected event handlers on views gated by login_required, permission_required, or redirecting on_mount hooks. All djust versions prior to 1.0.4 are affected: handle_mount sends a navigate/redirect frame on auth denial but neither closes the WebSocket nor clears self.view_instance, leaving the socket open and exploitable. Because handle_event never rechecks authentication after mount, a non-browser WebSocket client that ignores the redirect can send arbitrary event frames and execute state-mutating or data-reading handlers without an authenticated session. No public exploit identified at time of analysis beyond the WebsocketCommunicator proof-of-concept reproducer disclosed in GHSA-xx4j-w367-7247; this vulnerability is not listed in CISA KEV.

RemediationAI

Upgrade to djust 1.0.4 immediately via pip install 'djust>=1.0.4'. The fix - detailed in commit 1ae8aa9 (https://github.com/djust-org/djust/commit/1ae8aa9246b80477de7ddc4d90319a3b267bef04) and PR #1780 (https://github.com/djust-org/djust/pull/1780) - makes both the auth-redirect and on_mount-hook-redirect branches of handle_mount send the navigate frame and then call close(code=4403) and clear self.view_instance, mirroring the existing PermissionDenied branch. Version 1.0.4 also adds an opt-in defense-in-depth control: setting LIVEVIEW_CONFIG['reauth_on_event'] = True (default off) causes the framework to re-resolve the session user and re-run auth checks on every event for gated views, providing a belt-and-suspenders layer against future regressions on this path. If immediate upgrade is not possible, add explicit authentication checks at the top of every @event_handler on gated LiveViews (e.g., if not request.user.is_authenticated: return), since the framework does not re-verify after mount on affected versions; note this approach is handler-by-handler and easy to miss on new handlers. Alternatively, subclass the consumer and override handle_mount to call await self.close(code=4403) after any auth redirect emission; this is more robust than per-handler checks but requires maintaining a custom consumer class.

Affected VersionsENISA

djust < 1.0.4

Affected Packages

pypi djust fix: 1.0.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

djust is a Python/Django library providing Phoenix LiveView-style reactive server-side rendering, using Django Channels for WebSocket transport. The affected component is LiveViewConsumer, a WebSocket consumer class whose handle_mount method enforces access control before allowing a LiveView to mount. The root cause is CWE-285 (Improper Authorization): access control is enforced asymmetrically across two failure branches. The PermissionDenied branch (authenticated but unauthorized) correctly terminates the connection with close(code=4403), but the redirect branch (anonymous user hitting a login_required view) only emits a {"type":"navigate","to":...} frame and returns, leaving self.view_instance set and the socket fully open. The handle_event dispatcher gates only on the presence of self.view_instance, never re-invoking check_view_auth, so the unauthenticated socket remains capable of dispatching to any @event_handler method on the gated view. The same code path is reachable via handle_live_redirect_mount, which delegates to handle_mount and carries the same flaw. Affected CPE: cpe:2.3:a:djust-org:djust:*:*:*:*:*:*:*:* (all versions before 1.0.4).

Know when Djust gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
vuln.today AI 8.2 HIGH

WebSocket endpoint is network-reachable (AV:N); no authentication needed (PR:N); path/event enumeration is low-effort (AC:L); integrity fully compromised via unrestricted handler dispatch (I:H); reads possible but secondary (C:L); no availability impact described.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Aug 25, 2026 - 18:17 EUVD
CVE Published
Aug 25, 2026 - 16:05 cve.org
HIGH 8.2

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

djust WebSocket LiveView implementation in versions prior to 1.0.4 contains an authentication bypass vulnerability allowing unauthenticated remote clients to execute protected event handlers by ignoring redirect frames and transmitting arbitrary WebSocket events. Organizations using affected versions face immediate risk of unauthorized access to protected functionality and sensitive data without valid credentials. No public exploit identified at time of analysis, and no vendor patch is currently available, requiring urgent interim protections.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Implement network-level access controls restricting WebSocket endpoints to authenticated networks or corporate IP ranges; disable WebSocket LiveView functionality if not operationally required; deploy Web Application Firewall rules to block unauthenticated WebSocket event frames; enable enhanced logging and real-time alerting on WebSocket connection failures, authentication denials, and event handler execution; implement rate limiting on WebSocket connections; consider VPN or IP allowlisting for affected service access where feasible; establish monitoring for exploitation patterns including rapid connection attempts or repeated event invocations from unauthenticated sources.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche Django WebSocket extension, limited known production footprint
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

61
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy