Wysoki Odebrany

CVE-2026-61599

opublikowano:
modyfikacja:
Ocena CVSS
8.8
Wysoki · v4.0
wektor: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

djust zapewnia reaktywne renderowanie po stronie serwera w stylu Phoenix LiveView dla Django z wydajnością opartą na Rust. Przed wersją 1.0.7 djust live transport rozwiązuje LiveView tak, aby montował go z dostarczonej przez klienta ścieżki z kropkami, wywołując funkcję `__import__(module_path, ...)`. Moduł jest importowany — uruchamiając swój kod najwyższego poziomu (efekty uboczne importu) — zanim struktura sprawdzi, czy rozpoznany obiekt jest podklasą `LiveView` i przed jakimkolwiek uwierzytelnieniem na widok. Lista dozwolonych `LIVEVIEW_ALLOWED_MODULES`, która powinna to zawierać, jest otwarta w trybie awaryjnym („if dozwolony_moduły:” — pomijana, gdy ustawienie jest nieskonfigurowane, domyślnie framework) i wykorzystuje luźne dopasowanie „zaczyna się od”. Nieuwierzytelniony klient WebSocket (uzgadnianie WS nie wymaga autoryzacji; autoryzacja per view jest uruchamiana dopiero po imporcie i utworzeniu instancji) może zatem wysłać ramkę `mount` / `live_redirect_mount` / `url_change` (lub montowanie SSE) z `view = "<any.importable.module>.AnyName"` i spowodować, że serwer zaimportuje — i wykona kod najwyższego poziomu — dowolnego importowalny moduł Pythona według nazwy. Wersja 1.0.7 rozwiązuje problem z zamkniętą bramką rozstrzygającą (`djust._view_activate.is_view_import_allowed`): ścieżka widoku klienta jest rozpoznawana tylko wtedy, gdy (a) jego moduł jest już załadowany („sys.modules” — więc rozwiązywanie nie powoduje uruchomienia nowego kodu; widoki kierowane przez URL ładowane przez URLconf przy uruchomieniu działają nadal z zerową konfiguracją) lub (b) pasują do `LIVEVIEW_ALLOWED_MODULES` na granica modułu-segmentu (wyraźna zgoda na leniwie importowane widoki). Brama działa przed `__import__` na wszystkich trzech zlewach (+ dogłębna obrona w `_instantiate_view`). Jako obejście ustaw `LIVEVIEW_ALLOWED_MODULES` na wąską listę modułów zawierających możliwe do zamontowania klasy LiveView. (Uwaga: przed łatką lista dozwolonych jest dopasowywana „zaczyna się od”, a import nadal poprzedza sprawdzenie podklas, więc jest to rozwiązanie łagodzące, a nie pełne rozwiązanie).

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org