CVE-2026-61594 djust has an authorization bypass on the WebSocket/SSE mount path

Critical 9.1 Published Updated

Attackers can bypass Django authorization checks on WebSocket connections to access protected views and admin functions in djust applications.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-61594?

CVE-2026-61594 is a critical authentication bypass vulnerability in djust-org djust, published on 16 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

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.

Weakness: CWE-862, CWE-306

Which versions are affected by CVE-2026-61594?

3 open source packages ship an affected version, including djust.

PackageAffectedFixed in
djust PyPIAll versions1.0.7
djust PyPIAll versions1.0.7
djust PyPIAll versions1.0.7

How do I fix CVE-2026-61594?

Upgrade djust to 1.0.7 or later.

Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.

Is CVE-2026-61594 being exploited?

There is no known exploitation of CVE-2026-61594 in the wild and no public exploit code.

Sources

Also known as GHSA-xhhm-f6hp-2qwj, PYSEC-2026-4047.

Is CVE-2026-61594 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free