Skip to content
Threat Feed
critical advisory updated

Multi-tenant Isolation Bypass in djust via WebSocket/SSE

A vulnerability in djust caused multi-tenant isolation to fail open on WebSocket and SSE paths, allowing unauthorized cross-tenant data disclosure due to improper tenant context propagation.

CVE search metadata

CVE search record: CVE-2026-61595. Severity: high. CVSS: 7.7. KEV: no. Product: djust (< 1.0.7), djust (<= 1.1.0). Brief: Multi-tenant Isolation Bypass in djust via WebSocket/SSE. Brief link: https://feed.craftedsignal.io/briefs/2026-09-djust-tenant-isolation/

What's new

  • 1. added coverage for djust (<= 1.1.0) Sep 18, 01:12 via ghsa
  • 2. added coverage for djust (< 1.0.7) Sep 17, 01:08 via ghsa
  • 3. added coverage for djust (< 1.0.7) Sep 17, 01:08 via ghsa
  • 4. added coverage for djust (< 1.0.7) Sep 17, 01:07 via ghsa
  • 5. added coverage for djust (< 1.0.7) Sep 17, 01:07 via ghsa

The djust package (versions prior to 1.0.7) suffers from a critical multi-tenant isolation failure affecting WebSocket and Server-Sent Events (SSE) connections. The vulnerability stems from the implementation of tenant identification, which relied on threading.local() and an HTTP-only middleware. Because this middleware was not invoked on persistent connection paths (WebSocket/SSE), the get_current_tenant() function returned None.

Consequently, the tenant-aware QuerySet manager failed in an open state, returning unfiltered data instead of restricting access to the current tenant. This issue was compounded by the use of sync_to_async executors, which shared thread-local storage across disparate connection contexts. This vulnerability allows an authenticated attacker to access data belonging to other tenants by initiating a WebSocket or SSE connection. The issue is addressed in version 1.0.7 by transitioning to contextvars.ContextVar and ensuring secure tenant binding during connection dispatch.

Impact

Successful exploitation results in the unauthorized disclosure of sensitive data across all tenants within a djust-powered application. As the system defaults to returning unfiltered query sets when the tenant context is missing, any user with access to an active WebSocket or SSE endpoint can view records intended for other users or organizations. This vulnerability affects all applications using djust versions below 1.0.7 that utilize live connection features.

Recommendation

  • Upgrade the djust package to version 1.0.7 or later immediately to resolve CVE-2026-61595.
  • After upgrading, verify that the application triggers system check S006 if STRICT_MODE is disabled, as this check warns when tenant isolation protections are lowered.
  • Audit application logs for abnormal access patterns on WebSocket and SSE endpoints that may indicate unauthorized data harvesting from cross-tenant query results.

Immediate actions

Upgrade djust to 1.0.7

Development 24h

Mitigations

Upgrade to djust 1.0.7

immediate IT Operations

CVE-2026-61595