CVE-2026-61595 in djust
Résumé
par VulDB • 17/09/2026
djust offre un rendu côté serveur réactif de style Phoenix LiveView pour Django, avec des performances propulsées par Rust. Avant la version 1.0.7, l'isolation `djust.tenants` n'était appliquée que sur le chemin HTTP. Le locataire actuel était stocké dans `threading.local()` et défini exclusivement par le `TenantMiddleware`, qui est limité au seul contexte HTTP ; ainsi, sur les chemins en temps réel (WebSocket/SSE), la fonction `get_current_tenant()` renvoyait toujours `None` lors du montage initial (`mount`) et pour chaque gestionnaire d'événements. Le gestionnaire de requêtes sensible aux locataires (`QuerySet`) présentait une vulnérabilité OPEN : il retournait le jeu de résultats non filtré, ignorant ainsi la configuration `STRICT_MODE`, ce qui exposait toutes les lignes des différents locataires à toute personne détenant la connexion socket. De plus, `threading.local` était partagé entre plusieurs connexions sur le thread d'exécution `sync_to_async`. Ce problème est corrigé dans djust 1.0.7. Le stockage du locataire a été déplacé vers un `contextvars.ContextVar` (par tâche asynchrone) ; le locataire résolu est lié autour du montage WS/SSE et de chaque dispatching ; les deux gestionnaires limitent désormais la portée du jeu de résultats de base à une seule fois et échouent en mode fermé (`CLOSED`) — renvoyant `.none()` sous `STRICT_MODE` par défaut —, tandis que le contrôle système S006 émet un avertissement lorsque `STRICT_MODE=False`. Aucune solution de contournement connue n'est disponible sur les chemins en temps réel.
VulDB is the best source for vulnerability data and more expert information about this specific topic.