Severity by source
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Network-reachable live socket with low complexity; PR:L because a valid tenant socket is needed; S:C as one tenant reads another's data; confidentiality-only, so C:H, I:N, A:N.
Primary rating from Vendor (https://github.com/djust-org/djust).
CVSS VectorVendor: https://github.com/djust-org/djust
Lifecycle Timeline
5DescriptionCVE.org
Impact
djust.tenants isolation was enforced only on the HTTP path. The current tenant was stored in threading.local() and set exclusively by the HTTP-only TenantMiddleware, so on the live (WebSocket/SSE) path get_current_tenant() was always None during mount and every event handler - and the tenant-aware QuerySet manager failed OPEN (returned the unfiltered queryset, ignoring STRICT_MODE), disclosing every tenant's rows to whoever held the socket. threading.local was additionally shared across connections on the sync_to_async executor thread.
Patches
Fixed in djust 1.0.7. Tenant storage moved to a contextvars.ContextVar (per async task); the resolved tenant is bound around WS/SSE mount and every dispatch; both managers scope the base queryset once and fail CLOSED (.none() under the default STRICT_MODE); and system check S006 warns when STRICT_MODE=False.
Workarounds
No workaround on the live path short of upgrading.
AnalysisAI
Cross-tenant data disclosure in djust before 1.0.7 allows an authenticated low-privileged user who holds a WebSocket or SSE connection to read every tenant's rows, because the tenant-isolation manager failed open on the live path rather than rejecting the unscoped query. Only applications using the djust.tenants multi-tenancy feature and serving data over WebSocket/SSE mount or event dispatch are affected; pure HTTP requests remained correctly tenant-scoped. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires a djust application older than 1.0.7 that uses the djust.tenants multi-tenancy feature AND serves data over the live path (WebSocket or SSE / LiveView-style dispatch). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | This is a genuine, high-priority tenant-isolation flaw rather than an inflated high-CVSS finding, though the raw score should be read carefully. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | Full exploit scenario with step-by-step reproduction available after sign-in. |
| Remediation | Vendor-released patch: upgrade to djust 1.0.7, which migrates tenant storage from threading.local() to contextvars.ContextVar, binds the tenant around WS/SSE mount and every dispatch, and forces the tenant-aware QuerySet managers to fail closed (.none()) under the default STRICT_MODE. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, inventory every system running djust and flag those that use the djust.tenants multi-tenancy feature together with WebSocket or SSE mounts; for the highest-sensitivity applications, disable or restrict those live endpoints until upgraded, and turn on verbose logging of live-channel queries so any unscoped read is at least recorded. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-636 – Not Failing Securely ('Failing Open')
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-80851
GHSA-3492-cvg7-9mr2