CVE-2026-61599 in djustinformación

Resumen

por VulDB • 2026-09-17

djust proporciona renderizado reactivo en el lado del servidor al estilo de Phoenix LiveView para Django con rendimiento impulsado por Rust. Antes de la versión 1.0.7, djust live transport resuelve el LiveView que se debe montar a partir de una ruta punteada proporcionada por el cliente mediante la llamada `__import__(module_path, ...)`. El módulo se importa —ejecutando su código de nivel superior (efectos secundarios en la importación)— antes de que el framework verifique que el objeto resuelto sea una subclase de `LiveView` y antes de cualquier autenticación por vista. La lista blanca `LIVEVIEW_ALLOWED_MODULES`, que debería contener esto, es fail-open (`if allowed_modules:` —se omite cuando la configuración no está establecida, siendo este el valor predeterminado del framework) y utiliza coincidencia laxa con `startswith`. Un cliente WebSocket sin autenticar (el handshake de WS no requiere autenticación; la autenticación por vista se ejecuta solo después de la importación e instanciación) puede enviar un frame `mount` / `live_redirect_mount` / `url_change` (o una mount SSE) con `view = "<any.importable.module>.AnyName"` y provocar que el servidor importe —y ejecute el código de nivel superior de— cualquier módulo Python importable por nombre. La versión 1.0.7 soluciona el problema mediante un mecanismo de resolución fail-closed (`djust._view_resolution.is_view_import_allowed`): una ruta de vista del cliente se resuelve solo si (a) su módulo ya está cargado (`sys.modules`, lo que significa que la resolución no ejecuta código nuevo; las vistas enrutadas por URL, cargadas por el URLconf al inicio, siguen funcionando con configuración cero) o (b) coincide con `LIVEVIEW_ALLOWED_MODULES` en un límite de segmento de módulo (opt-in explícito para vistas importadas bajo demanda). El mecanismo se ejecuta antes de `__import__` en los tres puntos finales (+ defensa en profundidad dentro de `_instantiate_view`). Como solución alternativa, establezca `LIVEVIEW_ALLOWED_MODULES` con la lista estrecha de módulos que contienen sus clases LiveView montables. (Nota: pre-parcheando, la lista blanca se coincide mediante `startswith` y la importación aún precede a la verificación de subclase, por lo que esto es una mitigación, no una solución completa).

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsable

GitHub M

Reservar

2026-07-10

Divulgación

2026-09-17

Moderación

aceptado

Artículo

VDB-406267

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Might our Artificial Intelligence support you?

Check our Alexa App!