Średnia

Shiny for Python podatne na path traversal podczas przywracania zakładek

  • Ujawniono: 09.10.2026
  • Aktualizacja: 15.10.2026 18:17

Komunikat źródłowy zmienił się od przygotowania tego objaśnienia. Sprawdź aktualne dane techniczne i oryginalny komunikat poniżej.

Wpływ

Ścieżka przywracania zakładek w bibliotece Shiny for Python przyjmowała przekazaną przez klienta wartość w parametrze zapytania _state_id_ i łączyła ją z katalogiem zakładek po stronie serwera (<cwd>/shiny_bookmarks/<id>) bez uprzedniej walidacji. Wartość zawierająca segmenty ścieżki .. lub ścieżkę bezwzględną mogła w związku z tym spowodować otwarcie i przetworzenie przez serwer plików input.json oraz values.json z katalogu znajdującego się poza magazynem zakładek.

W domyślnej aplikacji próba przywrócenia była podejmowana za każdym razem, gdy klient przekazał ciąg zapytania w adresie URL — w tym także wtedy, gdy obsługa zakładek była wyłączona (bookmark_store="disable") — w związku z czym nie była wymagana żadna opcjonalna konfiguracja. W przypadku takich aplikacji skutkiem jest nieuwierzytelnione badanie po stronie serwera istnienia oraz poprawności formatu JSON ścieżek wybranych przez atakującego, ograniczone do tych dwóch nazw plików.

Aplikacje skonfigurowane z bookmark_store="server" oraz używające ui.input_file() są narażone w poważniejszym stopniu. Mechanizm przywracania pól wejściowych plików kopiuje pliki z katalogu przywracania, w związku z czym zawartość wskazanego przez atakującego pliku w wybranym katalogu mogła zostać wczytana do aplikacji.

Wersje dotknięte podatnością

Od 1.4.0 do 1.6.3. Mechanizm zakładek został wprowadzony w wersji 1.4.0; wcześniejsze wydania nie zawierają podatnej ścieżki kodu i problem ich nie dotyczy.

Podziękowania

Zgłoszone przez @0xRenSec.).

Co trzeba zrobić

Poprawki

Problem naprawiono w wersji 1.6.4. Aktualizację można przeprowadzić za pomocą:

pip install --upgrade shiny

Poprawka waliduje identyfikatory zakładek względem listy dozwolonych wartości — pojedynczego segmentu ścieżki pasującego do wyrażenia [A-Za-z0-9_-]+, który nie może zawierać separatora ścieżki, odwołania do katalogu nadrzędnego .. ani ścieżki bezwzględnej — zanim identyfikator zostanie użyty do zbudowania ścieżki w systemie plików. Identyfikatory zakładek wygenerowane przez Shiny nie podlegają negatywnemu wpływowi tego ograniczenia. Przywracanie jest dodatkowo w jednym miejscu uzależnione od ustawienia bookmark_store aplikacji, dzięki czemu nie jest już uruchamiane, gdy tworzenie zakładek jest wyłączone, a ścieżka przywracania z dysku jest respektowana wyłącznie przy ustawieniu bookmark_store="server".

Obejścia

Brak możliwości mitygacji problemu poprzez zmianę konfiguracji w podatnej wersji: ścieżka przywracania była wykonywana nawet przy bookmark_store="disable". Środowiska, które nie mogą natychmiast przeprowadzić aktualizacji, mogą usuwać parametr _state_id_ z przychodzących ciągów zapytań na poziomie reverse proxy lub modułu równoważenia obciążenia, co uniemożliwi dotarcie do podatnej ścieżki kodu.

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Python (PyPI) shiny >= 1.4.0, < 1.6.4 1.6.4

Odnośniki

Ocena CVSS -
Wektor CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Słabość (CWE)
CWE-22
Platforma
Python (PyPI)
Paczka
shiny
Ujawniono
09.10.2026
Aktualizacja
15.10.2026 18:17

Źródła i licencje · Redakcja lub tłumaczenie: DockRay. Zachowano prawa źródeł i obowiązujące licencje.

OSV / GitHub Advisory Database - PYSEC-2026-4300 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-47c3-hpmg-7j6p - CC BY 4.0

Historia podatności: shiny

Wszystkie opisane podatności tej paczki (Python (PyPI)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

To jedyna znana podatność tej paczki.

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.