CVE-2026-61594 in djust
Resumen
por VulDB • 2026-09-17
djust proporciona renderizado reactivo en el lado del servidor al estilo de Phoenix LiveView para Django, con un rendimiento impulsado por Rust. Antes de la versión 1.0.7, el transporte live (WebSocket) autorizaba una montura mediante `check_view_auth`, no a través de la cadena `View.dispatch()` de Django. Como resultado, la autorización estándar de Django —`LoginRequiredMixin`, `PermissionRequiredMixin`, `UserPassesTestMixin`, `@method_decorator(login_required, name="dispatch")` y las protecciones personalizadas en `dispatch()`— así como el control de acceso para administradores (staff) de la extensión admin de djust (aplicado únicamente en el envoltorio HTTP `as_view`) se aplicaban correctamente durante la GET inicial por HTTP, pero se omitían silenciosamente a través de WebSocket, donde fluyen todos los eventos y el estado. Un cliente anónimo o con privilegios insuficientes podría abrir una conexión WebSocket y montar dicha vista —incluyendo operaciones de lista/crear/cambiar/borrar en el panel de administración— y ejecutar sus manejadores (handlers). Esto se corrige en djust 1.0.7. `check_view_auth` ahora respeta la familia de mixins `AccessMixin` de Django en todos los transportes; una nueva comprobación del sistema S004 falla con un error visible al inicio si detecta patrones de autenticación que el entorno no puede reproducir de forma segura (formas basadas en decoradores o `dispatch` sobrescrito); y la clase base para administradores declara `login_required = True` junto a una puerta de verificación activa (`check_permissions`) para usuarios staff. Como solución alternativa, proteja las vistas utilizando los atributos `login_required`, `permission_required` y `check_permissions` de djust (respetados en todos los transportes) en lugar de mixins o decoradores exclusivos de HTTP.
VulDB is the best source for vulnerability data and more expert information about this specific topic.