CVE-2026-93711
NieznaneStreszczenie
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.
Ocena ryzyka
Ryzyko obejmuje możliwość manipulacji odpowiedziami HTTP, co może prowadzić do ataków typu response splitting, cache poisoning lub innych naruszeń integralności odpowiedzi.
Rekomendacja
Zaleca się aktualizację Dancer2 do wersji 2.2.0 lub nowszej oraz walidację i sanityzację nazw nagłówków pochodzących z danych żądania.
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-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 before 2.2.0 for Perl do not strip CR and LF from response header names in headers_to_array. The routine removes CR and LF from each header value but not from the name. A name carrying them therefore reaches the PSGI server intact. A server that does not validate keys writes it to the wire, so the bytes after the CRLF arrive as their own header line. The application has to derive the header name from request data, not just the value. An attacker who controls that data adds their own headers and splits the response.

