CVE-2026-66908
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
W Apache Camel Platform HTTP Main wykryto podatność polegającą na nieprawidłowym uwierzytelnianiu JWT. Gdy nie skonfigurowano parametrów jwtIssuer ani jwtAudience, serwer weryfikował tylko podpis i ważność tokena, pomijając całkowicie walidację roszczeń iss i aud. Dotyczy to wersji od 4.8.0 do 4.21.x, a poprawka jest dostępna w wersji 4.22.0.
Ocena ryzyka
Organizacja może akceptować tokeny JWT wystawione przez dowolnego zaufanego wystawcę lub przeznaczone dla innych aplikacji, co może prowadzić do nieautoryzowanego dostępu do chronionych zasobów. W środowiskach z współdzielonym dostawcą tożsamości ryzyko jest szczególnie wysokie.
Rekomendacja
Należy jak najszybciej zaktualizować Apache Camel do wersji 4.22.0 lub nowszej. Jeśli korzystasz z linii 4.14.x lub 4.18.x, zaktualizuj do 4.14.9/4.18.4 i jawnie skonfiguruj jwtIssuer lub jwtAudience. Ogranicz też zbiór zaufanych kluczy w keystore do minimum.
Inne podatności w Apache Camel
Zobacz wszystkie- CVE-2015-5348Wysokie
Apache Camel w wersjach od 2.6.x do 2.14.x, 2.15.x przed 2.15.5 oraz 2.16.x przed 2.16.1, przy użyciu camel-jetty lub camel-servlet jako konsumentów w trasach Camel, umożliwia zdalnym atakującym wykonanie dowolnych poleceń za pomocą spreparowanego zserializowanego obiektu Java w żądaniu HTTP.
- CVE-2014-0002Wysokie
Komponent XSLT w Apache Camel przed wersją 2.11.4 oraz 2.12.x przed wersją 2.12.3 umożliwia zdalnym atakującym odczyt dowolnych plików oraz potencjalnie inne nieokreślone skutki poprzez dokument XML zawierający deklarację zewnętrznego bytu w połączeniu z odniesieniem do bytu, co jest związane z problemem XML External Entity (XXE).
- CVE-2026-71300Krytyczne
Podatność w Apache Camel Atmosphere Websocket component wynika z nieprawidłowej walidacji nagłówków Exchange, które nie należą do przestrzeni nazw Camel (websocket.connectionKey, websocket.connectionKey.list, websocket.sendToAll, websocket.eventType, websocket.errorType). Zewnętrzny atakujący może dostarczyć nagłówek listy przez HTTP i przejąć decyzję o routingu wiadomości do WebSocket, co może prowadzić do pominięcia lub przekierowania powiadomień do innego klienta.
- CVE-2026-66906Krytyczne
Podatność typu Relative Path Traversal w komponencie Apache Camel Azure Storage Blob umożliwia zapis pliku poza skonfigurowanym katalogiem podczas operacji downloadBlobToFile. Nazwa blobu z segmentami katalogu nadrzędnego nie jest normalizowana, co pozwala na nadpisanie dowolnego pliku w systemie plików z uprawnieniami procesu Camel.
- CVE-2026-56140Krytyczne
W komponencie Apache Camel AWS SNS wykryto brak filtra dla nagłówków przychodzących w strategii Sns2HeaderFilterStrategy. Podatność nie jest jednak osiągalna, ponieważ komponent jest wyłącznie produkcyjny (nie obsługuje konsumentów), więc atakujący nie może dostarczyć zewnętrznych atrybutów wiadomości do Camel Exchange. Mimo to dodano filtr defensywny dla spójności z innymi strategiami.
- CVE-2026-53913Krytyczne
W komponencie camel-keycloak Apache Camel wykryto podatność polegającą na pomijaniu weryfikacji tokena dostępu w domyślnej konfiguracji. Gdy wymagane role lub uprawnienia są puste, token nie jest weryfikowany kryptograficznie, co pozwala na dostęp do chronionych tras z dowolnym nagłówkiem Authorization.
- CVE-2026-48205Krytyczne
Podatność w komponencie DNS Apache Camel umożliwia atak SSRF poprzez nieprawidłową walidację nagłówków wiadomości. Atakujący może ustawić nagłówki dns.server, dns.name i dns.domain w żądaniu HTTP, co prowadzi do przekierowania zapytań DNS na kontrolowany serwer i ujawnienia wewnętrznych nazw hostów.
- CVE-2026-48204Krytyczne
Podatność w Apache Camel w komponencie mongodb-gridfs pozwala atakującemu na manipulację operacjami GridFS poprzez nagłówki HTTP. Brak walidacji wejścia i kontroli dostępu umożliwia nieautoryzowane usuwanie, odczyt lub wyliczanie plików oraz wstrzykiwanie operatorów NoSQL.
- CVE-2026-48203Krytyczne
Podatność w komponencie Apache Camel Solr umożliwia ataki typu SSRF oraz wstrzykiwanie parametrów i pól do zapytań Solr. Nagłówki Exchange z prefiksami SolrParam. i SolrField. są przekazywane bez filtrowania z żądań HTTP do producenta Solr, co pozwala atakującemu na manipulację zapytaniami i dokumentami indeksowanymi.
- CVE-2026-46456Krytyczne
Podatność w komponencie AWS2-SQS Apache Camel pozwala atakującemu na wstrzyknięcie nagłówków kontrolnych Camel (np. CamelHttpUri, CamelFileName) poprzez wiadomości SQS. Brak filtrowania przychodzących nagłówków w Sqs2HeaderFilterStrategy umożliwia modyfikację zachowania producentów w trasie Camel.
Oryginalny opis (angielski, źródło NVD)
Improper Authentication vulnerability in Apache Camel Platform HTTP Main component. This issue affects Apache Camel: from 4.8.0 before 4.22.0. The camel-main embedded HTTP server can protect its endpoints with JWT authentication, configured through authenticationEnabled together with the JWT keystore properties. JWTAuthenticationConfigurer.buildJwtOptions returned null when neither jwtIssuer nor jwtAudience was configured, and the caller then skipped the JWTAuthOptions.setJWTOptions call entirely, so the Vert.x JWTAuth instance was built from the keystore alone. The result was that inbound tokens were checked only for signature and expiry: the iss and aud claims were not validated at all. Nothing signalled this - the server started normally and reported no warning - so a deployment configured the documented way silently enforced less than the operator believed it had enabled, and the component documentation itself presented signature and expiry checking as the default with issuer and audience as an optional extra. Both the application server and the management server were affected, because the omission was in each of the two configureAuthentication paths. Any unexpired token signed by any key the configured keystore trusts was therefore accepted, regardless of which issuer minted it or which audience it was intended for. How far that reaches depends on the trust set of the keystore: where the signing key belongs to a shared or multi-tenant identity provider, a token legitimately issued for an entirely different audience is accepted, while a keystore holding a dedicated signer narrows it to reuse of tokens minted for other services within the same trust domain. The jwtIssuer and jwtAudience options did not exist before 4.21.0, so on earlier releases there was no supported way to have these claims enforced at all. Users are recommended to upgrade to version 4.22.0, which fixes the issue. From 4.22.0 the server refuses to start when a JWT keystore is configured but neither jwtIssuer nor jwtAudience is set, naming the properties involved, and a deployment that genuinely wants signature and expiry validation only must say so explicitly with the new jwtAllowMissingIssuerAndAudience option, which defaults to false. This behaviour is fixed only on 4.22.0. The 4.14.9 and 4.18.4 releases do not change the default: they add the jwtIssuer and jwtAudience options so that operators on those maintenance lines can enforce the claims by configuration, and an installation that upgrades to 4.14.9 or 4.18.4 without also setting at least one of those two properties is still accepting any unexpired token signed by a trusted key. Users on 4.14.x or 4.18.x should therefore upgrade to 4.14.9 or 4.18.4 and then set jwtIssuer, jwtAudience, or both. Releases from 4.8.0 up to and including 4.21.x offer no way to enforce these claims and should be moved to a version that does. Independently of version, restrict the JWT keystore to the smallest possible trust set - ideally a signer dedicated to this service rather than a shared identity-provider key - and where a gateway already validates issuer and audience in front of the server, ensure it cannot be bypassed. Notes: The JIRA ticket: https://issues.apache.org/jira/browse/CAMEL-24281 refers to the various commits that resolved the issue, and has more details. The fail-closed guard could not be backported. The jwtIssuer and jwtAudience options were themselves only introduced in 4.21.0 by CAMEL-23525, so on camel-4.18.x and camel-4.14.x there was nothing an operator could set to satisfy the requirement and the guard would have broken every JWT deployment on those branches with no remedy available.

