Średni Oczekuje na analizę

CVE-2026-94386

opublikowano:
modyfikacja:
Ocena CVSS
4.8
Średni · v3.1
wektor: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Wykorzystanie luki w zabezpieczeniach pamięci podręcznej zawierającej poufne informacje w komponencie Apache Camel Oauth.



Ten problem dotyczy Apache Camel: od 4.19.0 do 4.22.2.



OAuthClientCredentialsTokenResolver uzyskuje tokeny nośnika OAuth 2.0 poprzez przyznanie poświadczeń klienta w imieniu komponentów uwierzytelniających jego wywołania wychodzące za pomocą nazwanego profilu OAuth, takich jak camel-openai, camel-langchain4j-agent, camel-huggingface, camel-docling, camel-a2a, camel-spring-ai-chat i komponenty IBM watsonx, oraz aplikacji wywołujących bezpośrednio SPI OAuthClientAuthenticationFactory. Przechowywał uzyskane tokeny w statycznej pamięci podręcznej współdzielonej przez każdą instancję programu tłumaczącego i każdy CamelContext w maszynie JVM i wpisywał tę pamięć podręczną tylko w punkcie końcowym tokenu i identyfikatorze klienta, chociaż żądanie tokena zawiera również klucz tajny klienta i żądany zakres. Dwa profile, które mają wspólny punkt końcowy tokenu i identyfikator klienta, ale żądają różnych zakresów lub uwierzytelniają się przy użyciu różnych kluczy tajnych klienta, są zatem mapowane na ten sam wpis w pamięci podręcznej: profil, który rozpoznał token, najpierw wypełnił wpis, a następnie drugi profil otrzymał ten token, bez żądania tokenu wysłanego w ramach własnej konfiguracji, tak długo, jak token pozostawał ważny. Buforowanie tokenów jest domyślnie włączone, a skierowanie kilku profili do jednego klienta dostawcy tożsamości jest zwykłym korzystaniem z obsługi profili, a nie wyrażeniem zgody na niezabezpieczone ustawienie. Wynikiem jest żądanie wychodzące zawierające token wystawiony dla zakresu innego profilu, który może przyznać szersze uprawnienia niż profil wywołujący lub dotrzeć do usługi, dla której token nie został wystawiony; w przypadku dostawców tożsamości, którzy czerpią odbiorców tokena z żądanego zakresu, inny zakres może oznaczać token dla zupełnie innej usługi. Profil skonfigurowany z innym sekretem klienta również otrzymał token uzyskany z innym sekretem, bez uwierzytelniania przy użyciu własnego sekretu. Profile są konfigurowane przez wdrożenie, które jest zaufane, więc żadne niezaufane dane wejściowe nie docierają do pamięci podręcznej: stroną, która zyskuje, jest usługa, która otrzymuje token, którego nie miała otrzymać, który, jeśli jest wrogi lub naruszony, może odtworzyć ten token w swoim zakresie. Rozwiązanie problemu wymaga wdrożenia, które definiuje więcej niż jeden profil współdzielący punkt końcowy tokenu i identyfikator klienta, różniący się zakresem lub kluczem tajnym klienta.

Użytkownikom zaleca się aktualizację do wersji 4.23.0, która rozwiązuje problem. Jeśli użytkownicy korzystają ze strumienia wydań 4.22.x, sugeruje się im aktualizację do wersji 4.22.2. Linie wydań od 4.19.x do 4.21.x dobiegły końca przed rozwiązaniem tego problemu i nie otrzymają poprawki, więc wdrożenia w nich muszą zostać przeniesione do obsługiwanej wersji. W przypadku wdrożeń, których nie można uaktualnić natychmiast, wyłącz buforowanie tokenów w każdym profilu OAuth, który współdzieli punkt końcowy tokenu i identyfikator klienta z innym profilem, ustawiając camel.oauth.NAME.cache-tokens=false dla nazwanego profilu lub camel.oauth.cache-tokens=false dla profilu domyślnego, tak aby każde rozwiązanie wymagało tokenu z własnym zakresem tego profilu i sekretem klienta, kosztem żądania tokenu przy każdym rozwiązaniu. Alternatywnie możesz zarejestrować osobnego klienta u dostawcy tożsamości dla każdego profilu, który wymaga innego zakresu lub klucza tajnego klienta, tak aby żadne dwa takie profile nie miały wspólnego identyfikatora klienta.

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org