CVE-2026-61598 in djust
Riassunto
di VulDB • 16/09/2026
djust fornisce rendering reattivo lato server di tipo Phoenix LiveView per Django, con prestazioni basate su Rust. Prima della versione 1.0.7, `djust.mixins.model_binding.ModelBindingMixin` offre un gestore eventi predefinito chiamato `update_model` ed è parte del MRO (Method Resolution Order) base di LiveView; ne consegue che ogni istanza di LiveView lo espone. Tale classe utilizza `setattr` per impostare un attributo della vista il cui nome è fornito dal client (`field`), con controlli limitati a: rifiuto dei nomi prefissati da `_`; rifiuto di una denylist (lista nera) di 14 voci relative all'interno del framework (`FORBIDDEN_MODEL_FIELDS`); opzionale `allowed_model_fields`, che per default è None (consente tutto); e verifica dell'esistenza tramite `hasattr`. Di conseguenza, un client può impostare qualsiasi attributo pubblico ed esistente della vista, non solo i campi effettivamente associati con `dj-model=` nel template renderizzato. La denylist copre le componenti interne del framework ma nulla riguarda lo stato aziendale o di autorizzazione (authz) dello sviluppatore, mentre la allowlist è opt-in (disabilitata per default). Uno sviluppatore che associa un input `dj-model="search"` e mantiene nello stato della vista attributi come `self.account_id`, `self.is_admin` o `self.total_price` potrebbe non rendersi conto che un client può impostarli tutti tramite `{type:event, event:"update_model", params:{field, value}}` attraverso WebSocket. La coercizione dei tipi corrisponde al tipo dell'attributo di destinazione (ad esempio `"true"` diventa bool True), facilitando l'attacco. Questo problema è stato risolto in djust 1.0.7. Come soluzione alternativa, impostare esplicitamente `allowed_model_fields` su ogni vista che utilizza dj-model (o che eredita da LiveView) con la lista minima di campi associabili; non mantenere stati di autorizzazione/proprietà in attributi pubblici della vista condivisi con le associazioni dj-model.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.