CVE-2026-93709
NieznaneStreszczenie
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.
Ocena ryzyka
Ryzyko to ujawnienie innych layoutów aplikacji, które mogą zawierać wrażliwe informacje lub strukturę aplikacji, co może pomóc atakującemu w dalszych atakach.
Rekomendacja
Zaleca się aktualizację Dancer2 do wersji 2.2.0 lub nowszej oraz unikanie włączania auto_page bez odpowiedniego zabezpieczenia ścieżek.
Inne podatności w Dancer2
Zobacz wszystkie- CVE-2026-93712Nieznane
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.
- 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-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 before 2.2.0 for Perl serve a layout as a page when an equivalent spelling of its path misses the guard in the AutoPage handler. The handler compares the request path against the layout directory name as text, while the lookup that follows canonicalises it. A doubled slash, a dot segment, a percent-encoded slash, or a different capitalisation on a case-insensitive filesystem therefore misses the guard. The handler is off by default, enabled with auto_page. The layout wrapping every page is already public, so this discloses one of the application's other layouts.

