CVE-2026-61594 in djust
Riassunto
di VulDB • 17/09/2026
djust fornisce una rendering reattivo lato server in stile Phoenix LiveView per Django con prestazioni basate su Rust. Prima della versione 1.0.7, il trasporto live (WebSocket) autorizzava un mount tramite `check_view_auth`, non attraverso la catena di esecuzione `View.dispatch()` di Django. Di conseguenza, l'autorizzazione standard di Django — `LoginRequiredMixin`, `PermissionRequiredMixin`, `UserPassesTestMixin`, `@method_decorator(login_required, name="dispatch")` e i controlli personalizzati su `dispatch()` — nonché il gate per gli utenti staff dell'estensione admin di djust (applicato solo nel wrapper HTTP `as_view`) venivano applicati durante la richiesta GET iniziale ma aggirati silenziosamente tramite WebSocket, dove fluiscono tutti gli eventi e lo stato. Un client anonimo o con privilegi insufficienti poteva aprire una connessione WebSocket e montare tale view — incluse le operazioni di lista/creazione/modifica/cancellazione dell'admin — ed eseguire i relativi handler. Questo problema è risolto in djust 1.0.7: `check_view_auth` ora rispetta la famiglia Django `AccessMixin` su ogni trasporto; un nuovo controllo di sistema S004 segnala chiaramente all'avvio le pattern di autenticazione che il runtime non può riprodurre in modo sicuro (forme basate su decorator o `dispatch` sovrascritto); e l'mixin base dell'admin dichiara `login_required = True` insieme a un gate attivo per la verifica dei permessi (`check_permissions`). Come soluzione alternativa, proteggere le view utilizzando gli attributi di djust `login_required`, `permission_required` e `check_permissions` (rispettati su tutti i trasporti) invece che mixin/decoratori limitati al solo HTTP.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.