CVE-2026-85491
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 26 - wyżej niż 26% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Catalyst::Seal w wersjach przed 0.03 dla Perla pozwala na unieważnienie ścieżki lub ominięcie kontroli autoryzacji poprzez mechanizm memoizacji oparty wyłącznie na ścieżce żądania. Klucz pamięci podręcznej nie uwzględnia metody HTTP, typu zawartości, schematu ani zapytania, przez co wynik rozstrzygnięcia ścieżki jest przypisywany do żądań, dla których nie został wyliczony. W efekcie żądanie GET na ścieżce z akcją tylko dla POST może trwale zablokować tę ścieżkę lub spowodować skierowanie późniejszego POST do płytszej, mniej uprzywilejowanej akcji z pominięciem kontroli autoryzacji.
Ocena ryzyka
Organizacja może doświadczyć trwałego zablokowania ścieżek lub — co poważniejsze — pominięcia kontroli autoryzacji, gdy żądanie zostanie skierowane do mniej uprzywilejowanej akcji. Ponieważ wpis w pamięci podręcznej utrzymuje się przez cały czas życia procesu, skutki mogą być długotrwałe i dotyczyć wielu kolejnych żądań.
Rekomendacja
Należy zaktualizować bibliotekę Catalyst::Seal do wersji 0.03 lub nowszej, która usuwa tę podatność. Do czasu aktualizacji zaleca się ograniczenie dostępu do aplikacji oraz monitorowanie nietypowych wzorców żądań na tych samych ścieżkach.
Powiązane podatności
- CVE-2026-117691Krytyczne
W implementacji wiązania SAML HTTP-Redirect w Keycloak występuje luka polegająca na tym, że serwer przetwarza nazwy parametrów zakodowane procentowo (np. %53AMLResponse), podczas gdy logika weryfikacji podpisu sprawdza tylko literalne nazwy parametrów. Atakujący może wykorzystać tę rozbieżność, dostarczając spreparowaną, niepodpisaną wiadomość SAML, którą serwer przetwarza zamiast legalnie podpisanej, co prowadzi do pełnego przejęcia konta użytkowników sfederowanych.
- CVE-2026-96677Krytyczne
Podatność Cross-site Scripting (XSS) w Apache Juneau. Serializacja dokumentów HTML nie koduje podstawień zmiennych w elementach szablonu strony (nagłówek, nawigacja, stopka itp.), więc aplikacje, które umieszczają tam dane z żądania, odzwierciedlają je bez kodowania.
- CVE-2026-73117Krytyczne
Podatność HTTP Response Splitting (wstrzykiwanie CRLF w nagłówkach HTTP) w Apache Juneau. Serwer REST przekazywał wartości nagłówków odpowiedzi i cele przekierowań do kontenera serwletów bez walidacji, co przy danych z żądania mogło pozwolić na wstrzyknięcie nagłówków lub przekierowanie na dowolną witrynę.
- CVE-2026-73116Krytyczne
Podatność niewystarczającej ochrony poświadczeń w Apache Juneau. Klient RestClient podążał za przekierowaniami HTTP, zachowując nagłówki poświadczeń z pierwotnego żądania, więc serwer przekierowujący na inny host, port lub z HTTPS na HTTP mógł otrzymać nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key.
- CVE-2026-73101Krytyczne
Podatność ujawniania informacji wrażliwych w komunikatach błędów w Apache Juneau. Serwer REST wysyła klientom klasę i treść wewnętrznego wyjątku w nagłówku odpowiedzi "Thrown" przy każdym błędzie oraz może umieszczać wewnętrzne komunikaty wyjątków w treści błędu, nawet przy wyłączonym renderowaniu stosu.
- CVE-2026-73100Krytyczne
Podatność umieszczania informacji wrażliwych w plikach logów w Apache Juneau. Domyślny logger wywołań serwera REST zapisuje nagłówki żądań dla żądań kończących się błędem serwera bez redakcji, więc nagłówki Authorization, Cookie, Proxy-Authorization i X-API-Key trafiają jawnym tekstem do logów aplikacji.
- CVE-2026-73099Krytyczne
Podatność Cross-Site Request Forgery (CSRF) w Apache Juneau. Serwer REST akceptuje parametr zapytania "content", który zastępuje treść żądania i jest domyślnie włączony dla każdej metody HTTP, w tym GET, więc link międzywitrynowy może dostarczyć wybraną przez atakującego treść żądania bez preflight CORS.
- CVE-2026-73098Krytyczne
Podatność nieprawidłowej kontroli dynamicznie ładowanego kodu w Apache Juneau. Przy parsowaniu wartości do właściwości typu java.lang.Class domyślna zamiana klas ładowała wskazaną klasę z włączoną inicjalizacją, więc dane wejściowe wskazujące klasę z classpath aplikacji uruchamiały jej statyczny inicjalizator.
- CVE-2026-121489Krytyczne
Podatność Path Traversal w Apache Juneau. Zasób mikroserwisu DirectoryResource nie utrzymuje ścieżek żądań wewnątrz skonfigurowanego katalogu głównego; gdy aplikacja włączy ustawienia view, upload lub delete (domyślnie wyłączone), klient może czytać, zapisywać lub usuwać pliki poza katalogiem głównym.
- CVE-2026-100109Krytyczne
Wtyczka WordPress Security For WooCommerce w wersjach 1.0.10–1.0.16 nie sprawdza uprawnień podczas tworzenia użytkowników przez akcję dostępną dla niezalogowanych odwiedzających i pozwala wybrać rolę nowego konta. Umożliwia to nieuwierzytelnionemu atakującemu utworzenie konta administratora i przejęcie witryny.
Oryginalny opis (angielski, źródło NVD)
Catalyst::Seal versions before 0.03 for Perl allow one request to disable a path or route a later one past an authorization check via a dispatch memo keyed on the request path alone. Catalyst::Seal replaces the dispatcher's prepare_action with a version that memoises how a path resolved: which dispatch type matched, at which level, and what was left over as arguments. The key is the request path and nothing else. Action roles that match on the method, content type, scheme or query make that resolution depend on state the key does not carry, so the memo answers for a request it was not built from. A path that resolves to no action is memoised as well, and replaying that entry returns without consulting any dispatch type, so no action is set and the request fails. A GET of a path whose action is declared POST-only therefore disables that path for every later request, the correct POST included. An entry that did resolve replays the level the earlier descent reached. Where a POST-only action sits below a shallower action on the same path, a GET memoises the shallow route, and a later POST is dispatched there with an auto() guarding the deeper controller never running. The memo is cleared only when an action is registered, which happens at setup, so an entry lasts for the life of the process, and its cap of 2048 entries bounds how many paths one caller can disable. In the configuration measured, the misroute lands on the less privileged action, so it is an authorization check not running rather than a privilege gain.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

