CVE-2026-105942
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 32 - wyżej niż 32% wszystkich znanych CVE
Streszczenie
W Apache Pulsar wykryto dwie luki w mechanizmie autoryzacji żądań przekazywanych przez proxy w imieniu innego użytkownika. Pierwsza polega na autoryzowaniu oryginalnego użytkownika danymi uwierzytelniającymi proxy (dotyczy m.in. MultiRolesTokenAuthorizationProvider), druga pozwala pominąć sprawdzenie oryginalnego użytkownika przy operacjach administracyjnych tenanta, gdy rola proxy jest administratorem tenanta. Może to umożliwić użytkownikom wykonanie operacji wykraczających poza ich własne uprawnienia.
Ocena ryzyka
Użytkownicy, których żądania są przekazywane przez podatne proxy, mogą uzyskać uprawnienia superużytkownika lub administratora tenanta i wykonywać operacje administracyjne bez posiadania tych uprawnień. Dotyczy to w szczególności wdrożeń z MultiRolesTokenAuthorizationProvider lub własnymi providerami korzystającymi z danych uwierzytelniających oraz wdrożeń, w których rola proxy jest administratorem tenanta.
Rekomendacja
Zaktualizuj Apache Pulsar do wersji co najmniej 4.0.14 (dla linii 4.0.x) lub 4.2.5 (dla linii 4.1.x i 4.2.x). Jeśli aktualizacja nie jest możliwa, przejrzyj konfigurację proxy i role administracyjne tenantów oraz ogranicz używanie MultiRolesTokenAuthorizationProvider i tokenów proxy.
Inne podatności w Apache Pulsar
Zobacz wszystkie- CVE-2026-105869Krytyczne
Podatność w Apache Pulsar dotyczy MultiRolesTokenAuthorizationProvider, który autoryzuje klienta na podstawie ról z niezweryfikowanego tokenu JWT. Gdy włączona jest anonimowa rola (anonymousUserRole) i uwierzytelnianie nie odrzuca żądań HTTP, klient może wysłać sfałszowany token z dowolnymi rolami i uzyskać autoryzację, w tym uprawnienia superużytkownika.
- CVE-2026-105945Wysokie
Usługa zarządzania pakietami Apache Pulsar z dostawcą storage FileSystemPackagesStorageProvider nie walidowała komponentu wersji nazwy pakietu, który mógł zawierać zakodowane w URL separatory ścieżek i odwołania do katalogu nadrzędnego. Pozwalało to na rozwiązanie ścieżki do lokalizacji pakietu w innym tenancie lub namespace, a kontrola zawierania w katalogu storage nie blokowała takiego dostępu. Uwierzytelniony użytkownik z uprawnieniem packages w dowolnym namespace mógł pobierać, nadpisywać lub usuwać pakiety innych tenantów/namespace'ów.
- CVE-2026-105938Niskie
Apache Pulsar nie stosował polityk subskrypcji (tryb Prefix lub uprawnienia do subskrypcji) w kilku administracyjnych operacjach REST API działających na subskrypcjach: czyszczeniu backlogu (dla nazwanej subskrypcji i wszystkich), unsubscribe oraz wygaszaniu wiadomości dla wszystkich subskrypcji tematu. Uwierzytelniony użytkownik z uprawnieniem consume na przestrzeni nazw lub temacie mógł ominąć te polityki i wyczyścić backlog, wygasić wiadomości lub usunąć subskrypcję, do której normalnie nie miałby dostępu.
- CVE-2026-105937Wysokie
Podatność w Apache Pulsar dotyczy mechanizmu shadow topics (PIP-180). Broker autoryzuje użytkownika tylko względem tworzonego lub aktualizowanego tematu, a nie względem tematu źródłowego wskazanego we właściwości PULSAR.SHADOW_SOURCE. Umożliwia to uwierzytelnionemu użytkownikowi z uprawnieniami do tworzenia tematów lub edycji ich właściwości w jednym tenancie powiązanie tematu z tematem źródłowym w innym tenancie i odczyt jego zachowanych wiadomości.
- CVE-2026-105936Średnie
W Apache Pulsar endpoint functions connectors (/admin/v2/functions/connectors i /admin/v3/functions/connectors) zwraca katalog connectorów IO bez wymagania uprawnień super-użytkownika, podczas gdy endpoint worker connectors wymaga takich uprawnień. W rezultacie każdy uwierzytelniony klient może odczytać metadane katalogu connectorów niezależnie od posiadanej roli. Luka dotyczy wersji od 2.4.1 do 4.0.13 oraz od 4.1.0 do 4.2.4.
- CVE-2026-105935Średnie
Luka w Apache Pulsar dotyczy endpointu REST API Functions Worker służącego do wyzwalania funkcji. Worker publikuje wiadomość do tematu wejściowego funkcji, używając własnych poświadczeń brokera, a nie poświadczeń wywołującego, i nie sprawdza, czy wywołujący ma uprawnienia do produkowania do tego tematu. W wersjach przed 2.4.0 nie ma żadnej weryfikacji uprawnień wywołującego dla tego endpointu.
- CVE-2026-105934Wysokie
Apache Pulsar broker w wersjach 2.8.0–4.0.13 oraz 4.1.0–4.2.4 nie stosuje sprawdzenia roli administratora tenanta do wywołującego przy operacji truncate na temacie partycjonowanym. Zamiast tego broker wykonuje truncate każdej partycji własnym wewnętrznym klientem administracyjnym, więc uwierzytelniony użytkownik bez uprawnień administratora tenanta, ale z uprawnieniem lookup, może opróżnić dowolny temat partycjonowany. Powoduje to pominięcie niepotwierdzonego backlogu subskrypcji oraz trwałe usunięcie starszych ledgerów niezależnie od polityki retencji.
- CVE-2026-105933Niskie
Apache Pulsar pozwala administratorowi wymuszać szyfrowanie end-to-end wiadomości w namespace poprzez politykę encryption_required. Jeśli inicjalizacja tematu trwałego nie powiedzie się (np. błąd odczytu z magazynu metadanych lub błąd ładowania polityk tematu), broker loguje ostrzeżenie, wyłącza wymóg szyfrowania i kończy ładowanie tematu jako udane. W rezultacie uwierzytelniony klient z uprawnieniami do produkcji może publikować niezaszyfrowane wiadomości, które broker akceptuje i przechowuje, mimo że polityka namespace tego wymaga.
- CVE-2026-105932Niskie
W Apache Pulsar punkty końcowe REST API dla tematów niepersystentnych (/admin/v2/non-persistent/.../entryFilters) nie sprawdzają uprawnień do zarządzania polityką filtrów wpisów, w przeciwieństwie do tematów persystentnych. Uwierzytelniony użytkownik z uprawnieniami produce lub consume na temacie niepersystentnym może odczytać, zastąpić lub usunąć politykę filtrów wpisów tego tematu. Luka dotyczy wersji od 3.3.0 do 4.0.14 oraz od 4.1.0 do 4.2.5.
- CVE-2026-105931Niskie
Apache Pulsar broker udostępnia API REST do administracji transakcjami pod /admin/v3/transactions. Gdy włączone są uwierzytelnianie i autoryzacja, większość endpointów odczytu weryfikuje jedynie uwierzytelnienie i dostępność tematu lub koordynatora transakcji, nie sprawdzając uprawnień wywołującego do tenanta, przestrzeni nazw ani tematu. W efekcie każdy uwierzytelniony użytkownik, nawet bez żadnych uprawnień, może odczytać metadane i statystyki transakcji należących do innych tenantów.
Oryginalny opis (angielski, źródło NVD)
When a configured proxy role sends a request to the broker on behalf of another user (the original principal), the broker is designed to authorize both the proxy role and the original principal and to allow the request only if both are authorized, so that the original principal cannot exceed its own permissions. Two flaws weakened this check. First, the original principal was authorized with the proxy's authentication data instead of its own. On the admin REST API of the broker and the functions worker, this applied to every proxied request. On the Pulsar binary protocol, it applied when the proxy did not forward the client's credentials to the broker, which was the default of the Pulsar proxy in the affected versions. Authorization providers that resolve permissions from the role name only, such as the default authorization provider, are not affected by this flaw. The multi-role token authorization provider (MultiRolesTokenAuthorizationProvider), added in Apache Pulsar 2.8.1, resolves roles from the role claim of the token in the authentication data it is given. When a proxy authenticates to the broker with its own token, the original principal was therefore authorized with all roles in the proxy's token. If any of those roles is a superuser or tenant admin role, any user whose requests are forwarded by that proxy can perform operations that need those permissions without holding them. Custom authorization providers that use the authentication data could be affected in a similar way. Second, independently of the authorization provider, the tenant admin check of a proxied admin REST API request succeeded without checking the original principal when the proxy role was itself an admin role of the tenant. In deployments where a proxy role is a tenant admin, including with the default authorization provider, any user whose requests are forwarded by that proxy could perform tenant administration operations on that tenant. This behavior is present from 2.8.4 in the 2.8.x releases, from 2.9.3 in the 2.9.x releases, and from 2.10.1 onwards. Deployments that use neither the multi-role token authorization provider nor a custom provider that uses the authentication data are not affected by the first flaw, and with the multi-role token authorization provider, neither are deployments whose proxies do not authenticate to the broker with a token. Deployments in which no proxy role is listed as an admin role of a tenant are not affected by the second flaw. A proxy role that is a superuser but is not listed as a tenant admin does not trigger it, because the tenant admin check of the built-in authorization providers only considers the tenant's admin roles; this can differ for custom authorization providers that treat superusers as tenant admins. In fixed versions, both the proxy role and the original principal are authorized for each proxied request, and the original principal is authorized only with its own authentication data. With the multi-role token authorization provider, the roles of a forwarded token are used for the original principal only when that token authenticates as the original principal; otherwise only the original principal's role name is used. For tenant admin checks, the proxy role and the original principal must each be a superuser or a tenant admin of the tenant. This issue affects Apache Pulsar versions from 2.8.1 before 4.0.14 and from 4.1.0 before 4.2.5. - 4.0.x version users should upgrade to at least 4.0.14. - 4.1.x and 4.2.x version users should upgrade to at least 4.2.5. Users operating versions prior to those listed above should upgrade to the aforementioned patched versions or newer versions. The currently supported Apache Pulsar release lines are 4.0.x and 5.0.x. The supported versions schedule is available at https://pulsar.apache.org/contribute/release-policy/.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

