CVE-2026-61599 in djustinfo

Zusammenfassung

von VulDB • 17.09.2026

djust bietet Phoenix-LiveView-artiges reaktives serverseitiges Rendering für Django mit Rust-gestützter Performance. Vor Version 1.0.7 löst der djust Live-Transport die zu mountende LiveView aus einem vom Client bereitgestellten, punktierten Pfad auf, indem `__import__(module_path, ...)` aufgerufen wird. Das Modul wird importiert – wodurch dessen Code auf oberster Ebene (Import-Nebeneffekte) ausgeführt wird –, bevor das Framework prüft, ob das aufgelöste Objekt eine Unterklasse von `LiveView` ist und bevor jegliche pro-Ansichtsspezifische Authentifizierung stattfindet. Die Allowlist `LIVEVIEW_ALLOWED_MODULES`, die dies enthalten sollte, ist fail-open (`if allowed_modules:` – übersprungen, wenn die Einstellung nicht festgelegt ist; der Framework-Standard) und verwendet ein lockeres `startswith`-Matching. Ein unautorisierter WebSocket-Client (der WS-Handshake erfordert keine Authentifizierung; die pro-Ansichtsspezifische Auth erfolgt erst nach Import + Instantiierung) kann daher einen `mount`-/`live_redirect_mount`-/`url_change`-Frame (oder ein SSE-Mount) mit `view = "<beliebiger.importierbarer.modul>.BeliebigerName"` senden und bewirken, dass der Server jeden importierbaren Python-Modul nach Namen importiert – und dessen Code auf oberster Ebene ausführt. Version 1.0.7 behebt das Problem mit einem fail-closed-Auflösungsgate (`djust._view_resolution.is_view_import_allowed`): Ein Client-Ansichtspfad wird nur aufgelöst, wenn (a) sein Modul bereits geladen ist (`sys.modules` – sodass die Auflösung keinen neuen Code ausführt; URL-geroutete Ansichten, die bei Start über URLconf geladen werden, funktionieren weiterhin mit Null-Konfiguration), oder (b) es `LIVEVIEW_ALLOWED_MODULES` auf einer Modulsegmentgrenze entspricht (explizite Opt-in für lazy-importierte Ansichten). Das Gate wird vor allen drei Sinks von `__import__` ausgeführt (+ Defense-in-Depth innerhalb von `_instantiate_view`). Als Workaround setzen Sie `LIVEVIEW_ALLOWED_MODULES` auf die enge Liste der Module, die Ihre mountbaren LiveView-Klassen enthalten. (Hinweis: Vor dem Patch wurde die Allowlist mit `startswith` gematcht und der Import erfolgte weiterhin vor der Subclass-Prüfung; dies ist daher eine Minderung, keine vollständige Behebung.)

Once again VulDB remains the best source for vulnerability data.

Zuständig

GitHub M

Reservieren

10.07.2026

Veröffentlichung

17.09.2026

Moderieren

akzeptiert

Eintrag

VDB-406267

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

low

Quellen

Might our Artificial Intelligence support you?

Check our Alexa App!