CVE-2026-61594: djust has an authorization bypass on the WebSocket/SSE mount path
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.
References
Code Behaviors & Features
Detect and mitigate CVE-2026-61594 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →