CVE-2026-93712
NieznaneStreszczenie
Dancer2 w wersjach od 2.1.0 do przed 2.2.0 dla Perla serwuje pliki spoza public_dir przez względne segmenty ścieżki w handlerze trasy File. Handler łączy ścieżkę żądania z public_dir bez usuwania segmentów względnych, co pozwala na dostęp do plików poza katalogiem publicznym. Handler jest domyślnie wyłączony, ale aplikacja jest zagrożona, gdy włączy File w route_handlers i ustawi static_handler na 0.
Ocena ryzyka
Ryzyko to nieautoryzowany odczyt dowolnych plików, które proces roboczy może odczytać, w tym plików konfiguracyjnych aplikacji, co może prowadzić do wycieku wrażliwych danych.
Rekomendacja
Zaleca się aktualizację Dancer2 do wersji 2.2.0 lub nowszej oraz unikanie włączania handlera File bez odpowiedniego zabezpieczenia ścieżek.
Inne podatności w Dancer2
Zobacz wszystkie- CVE-2026-93711Nieznane
Dancer2 w wersjach przed 2.2.0 dla Perla nie usuwa znaków CR i LF z nazw nagłówków odpowiedzi w funkcji headers_to_array. Rutynowo usuwa CR i LF z wartości nagłówka, ale nie z nazwy, co pozwala na wstrzyknięcie dodatkowych nagłówków i podział odpowiedzi. Aplikacja musi wyprowadzać nazwę nagłówka z danych żądania.
- CVE-2026-93710Nieznane
Dancer2 w wersjach od 2.0.0 do przed 2.2.0 dla Perla wykonuje trasę, którą umierający hook odrzucił, gdy handler wyjątku zatrzymuje odpowiedź w compile_hooks. Handler, który zatrzymuje odpowiedź, nie zatrzymuje procesu czyszczenia, co prowadzi do wykonania odrzuconej trasy. Obejście to może pozwolić na ominięcie kontroli w hooku before.
- CVE-2026-93709Nieznane
Dancer2 w wersjach przed 2.2.0 dla Perla serwuje layout jako stronę, gdy równoważna pisownia jego ścieżki omija zabezpieczenie w handlerze AutoPage. Handler porównuje ścieżkę żądania z nazwą katalogu layoutu jako tekst, podczas gdy późniejsze wyszukiwanie kanonizuje ścieżkę. Podwójny slash, segment kropki, zakodowany procentowo slash lub inna wielkość liter na systemie plików bez rozróżniania wielkości liter omija zabezpieczenie.
- CVE-2026-13577Wysokie
Wersje Dancer2 dla Perla przed 2.2.0 generują niezabezpieczone identyfikatory sesji, gdy wymagane moduły CSPRNG są niedostępne. W takim przypadku następuje cichy powrót do identyfikatora sesji opartego na wbudowanej funkcji rand, która ma niską entropię i jest łatwa do odgadnięcia. Przewidywalne identyfikatory sesji mogą umożliwić atakującemu uzyskanie dostępu do systemu.
Oryginalny opis (angielski, źródło NVD)
Dancer2 versions from 2.1.0 before 2.2.0 for Perl serve files from outside public_dir via relative path segments in the File route handler. The handler joins the request path onto public_dir without collapsing relative segments, and checks only that the result is a readable regular file. A request for `/../outside.txt` escapes public_dir, and percent-encoding the dots reaches the same file. The handler is off by default. An application is affected once it names File in route_handlers and sets static_handler to 0, which otherwise refuses a dot segment before the route runs. Any file the worker process can read is served to an unauthenticated request, including the application's config.yml above public_dir.

