Track vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
9.1

CVE-2026-61594: djust permits login bypass on WebSocket connections

CVE-2026-61594 · published 26 days ago
Summary

If you are using djust version earlier than 1.0.7, the permission checks that normally block anonymous users are not applied when a page communicates via WebSocket. This could let an unauthenticated or low‑privilege user open a WebSocket and interact with views that should be restricted, including admin functions. Upgrade to djust 1.0.7 or later, or use djust's own login_required / permission_required settings instead of Django-only decorators, to ensure the checks run on all transports.

What to do
  • Update djust contributors djust to version 1.0.7.
  • Update djust to version 1.0.7.
Affected software
Ecosystem VendorProductAffected versions
– djust-org djust < 1.0.7
pip djust contributors djust < 1.0.7
Fix: upgrade to 1.0.7
pip – djust < 1.0.7
Fix: upgrade to 1.0.7
Original advisory text
djust has an authorization bypass on the WebSocket/SSE mount path
djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, the live (WebSocket) transport authorizes a mount via `check_view_auth`, not Django's `View.dispatch()` chain. As a result, standard Django authorization — `LoginRequiredMixin`, `PermissionRequiredMixin`, `UserPassesTestMixin`, `@method_decorator(login_required, name="dispatch")`, and custom `dispatch()` guards — and the djust admin extension's staff gate (applied only in the HTTP `as_view` wrapper) were enforced on the initial HTTP GET but silently bypassed over WebSocket, where all events and state flow. An anonymous or under-privileged client could open a WebSocket and mount such a view — including admin list/create/change/delete — and dispatch its handlers. This is fixed in djust 1.0.7. `check_view_auth` now honors the Django `AccessMixin` family on every transport; a new system check S004 fails loud at startup on auth patterns the runtime cannot safely replay (decorator/overridden-`dispatch` forms); and the admin base mixin declares `login_required = True` + an active-staff `check_permissions` gate. As a workaround, gate views using djust's `login_required` / `permission_required` / `check_permissions` attributes (honored on all transports) rather than HTTP-only mixins/decorators.
Fix within
Internet-facing 14 days
Internal At next upgrade
  • Not known to be exploited
  • Needs hands-on effort to exploit
  • Gives an attacker full control
Severity
9.1 Critical
Exploitation
<1% chance of attack within 30 days
Type
CWE-306Missing Authentication for Critical Function
CWE-862Missing Authorization
Timeline
Published16 Sep 2026
Updated11 Oct 2026
First seen16 Sep 2026
Track software like this
Free during beta