CVE-2026-21873
WysokieStreszczenie
NiceGUI w wersjach od 2.22.0 do 3.4.1 ma niebezpieczną implementację w nasłuchiwaczu zdarzeń pushstate używanym przez ui.sub_pages, co pozwala atakującemu manipulować identyfikatorem fragmentu URL, nawet w kontekście cross-site, używając iframe. Problem został naprawiony w wersji 3.5.0.
Ocena ryzyka
Ryzyko manipulacji adresem URL i potencjalnych ataków typu phishing lub przejęcia sesji użytkownika.
Rekomendacja
Zaktualizuj NiceGUI do wersji 3.5.0 lub nowszej, aby naprawić podatność.
Inne podatności w NiceGUI
Zobacz wszystkie- CVE-2026-45554Średnie
NiceGUI to framework UI oparty na Pythonie. Przed wersją 3.12.0 dwie trasy FastAPI obsługujące statyczne zasoby na komponent akceptują parametr sub-ścieżki, który może rozwiązać się do katalogu zamiast pliku. Żądania rozwiązujące się do katalogu powodują nieobsłużony RuntimeError wewnątrz FileResponse Starlette, który Uvicorn zapisuje do dziennika serwera jako pełny ślad stosu. Ponieważ trasy są osiągalne bez uwierzytelnienia, zdalny atakujący może zwiększyć objętość dziennika i zużyć pojemność dysku i potoku dziennika na każdym publicznie dostępnym serwerze NiceGUI. Problem został naprawiony w wersji 3.12.0.
- CVE-2026-45553Wysokie
NiceGUI w wersji przed 3.12.0 zawiera podatność w ui.restructured_text(), która renderuje reStructuredText po stronie serwera bez wyłączania dyrektyw wstawiania plików. Atakujący może odczytać lokalne pliki, do których ma dostęp proces serwera NiceGUI.
- CVE-2026-39844Średnie
NiceGUI, framework UI w Pythonie, przed wersją 3.10.0 jest podatny na zapis dowolnego pliku w systemie Windows. Ponieważ PurePosixPath rozpoznaje tylko ukośniki (/) jako separatory ścieżek, atakujący może użyć backslashy (\) w nazwie przesyłanego pliku, aby ominąć sanityzację.
Oryginalny opis (angielski, źródło NVD)
NiceGUI is a Python-based UI framework. From versions 2.22.0 to 3.4.1, an unsafe implementation in the pushstate event listener used by ui.sub_pages allows an attacker to manipulate the fragment identifier of the URL, which they can do despite being cross-site, using an iframe. This issue has been patched in version 3.5.0.

