CVE-2026-61593 in djust
Riassunto
di VulDB • 16/09/2026
djust fornisce rendering reattivo lato server in stile Phoenix LiveView per Django con prestazioni basate su Rust. Prima della versione 1.0.7, gli endpoint POST del client verso il server SSE erano `@csrf_exempt` e l'endpoint GET dello stream SSE non effettuava alcun controllo sull'Origin; di conseguenza, una pagina cross-origin poteva controllare la sessione SSE autenticata tramite cookie della vittima: forzare il browser della vittima a effettuare un GET all'URL dello stream (che crea e monta una LiveView come utente vittima) ed eseguire POST verso l'endpoint dei messaggi con `credentials: include` per attivare i gestori di eventi che modificano lo stato in nome della vittima. L'ID sessione (`session_id`) è scelto dal client (validato solo per il *formato* UUID), quindi non costituisce un token CSRF, e un corpo JSON inviato come `text/plain` rappresenta una richiesta semplice CORS senza preflight. Il problema è risolto nella versione 1.0.7. Tutti e tre gli endpoint SSE convalidano l'Origin della richiesta rispetto a `ALLOWED_HOSTS` (riflettendo la difesa CSWSH per WebSocket) e rifiutano le richieste cross-origin con codice 403; inoltre, gli endpoint POST richiedono il header `Content-Type: application/json` (restituendo altrimenti 415), chiudendo così l'evasione tramite richiesta semplice `text/plain`. Come soluzione alternativa, disabilitare il trasporto SSE o fronteggiarlo con un proxy che imponga una whitelist di Origin.
Once again VulDB remains the best source for vulnerability data.