{"id":25188,"date":"2026-09-17T08:32:20","date_gmt":"2026-09-17T00:32:20","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-61589"},"modified":"2026-09-17T08:32:20","modified_gmt":"2026-09-17T00:32:20","slug":"cve-2026-61589","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-61589","title":{"rendered":"CVE-2026-61589 [MEDIUM] &#8211; djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-"},"content":{"rendered":"<p>djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, the WebSocket `handle_mount` and `ViewRuntime._build_request` rebuild an `HttpRequest` via `RequestFactory().get(&#8230;)` with no `HTTP_HOST`, so `request.get_host()` defaulted to `&#8221;testserver&#8221;` on the live path. Host\/subdomain\/domain `TenantResolver`s then misresolved the tenant \u2014 `None` on the live path while the HTTP path resolved correctly. With `STRICT_MODE=False` the tenant-scoped managers returned unscoped rows (cross-tenant disclosure); with the default they returned an empty queryset (broken tenancy). This is fixed in djust 1.0.7. The handshake Host is extracted from the ASGI scope, validated against `ALLOWED_HOSTS` (the same logic as the CSWSH Origin gate, parsed with Django&#8217;s `split_domain_port` so malformed Hosts are rejected at the boundary), and propagated \u2014 with the TLS scheme \u2014 into the reconstructed request, so live-path tenant resolution matches HTTP exactly. There is no known workaround on the live path short of upgrading. Users are most exposed when combined with `STRICT_MODE=False`.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>djust provides Phoenix LiveView-style reactive server-side rendering for Django with Rust-powered performance. Prior to version 1.0.7, the WebSocket `handle_mount` and `ViewRuntime._build_request` reb<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25188","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}