CVE-2026-78164
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Niewłaściwa neutralizacja elementów specjalnych używanych w silniku szablonów i ujawnienie poufnych informacji nieautoryzowanemu aktorowi Luka w komponentach Apache Camel HTTP, Netty HTTP, Undertow i Vert.x HTTP.
Ten problem dotyczy Apache Camel: od 4.0.0 przed 4.18.5, od 4.19.0 przed 4.22.1.
Rodziny producentów Camel HTTP pozwalają, aby komunikat przychodzący zastąpił identyfikator URI punktu końcowego poprzez nagłówki CamelHttpUri i CamelRestHttpUri, a następnie przed użyciem przekazał ten ciąg dostarczony przez komunikat za pomocą CamelContext.resolvePropertyPlaceholders(). Rozpoznawanie symboli zastępczych właściwości to narzędzie do rozpoznawania konfiguracji, a nie etap analizowania identyfikatora URI: dociera do zmiennych środowiskowych systemu operacyjnego, właściwości systemu JVM, każdej właściwości PropertiesFunction zarejestrowanej w ścieżce klasy – łącznie z tajnymi funkcjami – oraz, za pośrednictwem komponentu Camel-Bean, do wywołania metody bezargumentowej dla dowolnego komponentu bean w rejestrze. Zastosowanie go do treści Exchange spowodowało zatem przekształcenie ciągu URI w kontekst konfiguracji i oceny komponentów bean. Autor trasy nie zgodził się na żadne z tych rozwiązań: wystarczyła zwykła statyka („http://backend/api”). Problem dotyczy siedmiu witryn wywołujących: HttpHelper.createURL i HttpHelper.createMethod w camel-http-common, HttpMethodHelper.createMethod w camel-http, VertxHttpHelper.resolveHttpURI w camel-vertx-http, UndertowHelper.createURL i UndertowHelper.createMethod w camel-undertow i NettyHttpHelper.createURL w camel-netty-http. Opcja BridgeEndpoint nie ograniczała ekspozycji: pomija przesłonięcie CamelHttpUri w rodzinie createURL, ale nie w rodzinie createMethod, więc trasa korzystająca z udokumentowanej konfiguracji mostowania nadal rozwiązywała elementy zastępcze pobrane z nagłówka, a CamelRestHttpUri został wykorzystany przed jakimkolwiek sprawdzeniem BridgeEndpoint we wszystkich czterech komponentach. Tylko camel-http oferował opcję rezygnacji, skipControlHeaders, która domyślnie ma wartość false. Dotarcie do nagłówków nie zawsze wymagało wstrzyknięcia nagłówka, ponieważ kilku konsumentów HTTP Camel samodzielnie wypełnia CamelHttpUri z wiersza żądania jako udokumentowaną funkcję odwrotnego proxy. Nierozwiązywalny symbol zastępczy dodatkowo wygenerował wyjątek RuntimeExchangeException, którego komunikat odzwierciedlał identyfikator URI, który odróżnia zestaw od nieustawionego klucza konfiguracyjnego, nawet jeśli nie jest wysyłane żadne żądanie wychodzące. Zachowanie jest starsze niż linia 4.x. Ten poradnik stanowi kontynuację dostosowania CAMEL-24282 zastosowanego do toD i wzbogacenie dynamicznych identyfikatorów URI EIP w wersji 4.22.0, rozszerzając tę samą umowę dotyczącą rozwiązywania problemów w czasie kompilacji na komponenty producenta HTTP.
Użytkownicy powinni dokonać aktualizacji do wersji 4.23.0, która rozwiązuje problem. Użytkownicy strumienia wydań 4.22.x powinni dokonać aktualizacji do wersji 4.22.1. Użytkownicy strumienia wydań 4.18.x powinni dokonać aktualizacji do wersji 4.18.5. Strumień wersji 4.14.x dobiegł końca, zanim problem został rozwiązany i nie otrzymał poprawki, więc wdrożenia na tych liniach muszą zostać przeniesione do obsługiwanej wersji. W przypadku wdrożeń, których nie można uaktualnić natychmiast, usuń nagłówki przesłaniania na granicy zaufania przed producentem za pomocą usuwaniaHeader("CamelHttpUri") i usuwaniaHeader("CamelRestHttpUri") lub ustaw skipControlHeaders=true na punktach końcowych Camel-http, które są jedynym komponentem oferującym tę opcję. Należy pamiętać, że BridgeEndpoint=true nie jest obejściem: pomija zastąpienie nagłówka podczas tworzenia wychodzącego adresu URL, ale nie podczas ponownej analizy nagłówka pod kątem ciągu zapytania. Kodowanie procentowe ograniczników zastępczych również nie jest rozwiązaniem problemu dla camel-netty-http, którego powiązanie dekoduje ścieżkę żądania, zanim wartość dotrze do nagłówka, więc reguły proxy lub WAF napisane przeciwko surowym ogranicznikom tam nie pomagają. W ramach dogłębnej obrony upewnij się, że konsumenci narażeni na kontakt z niezaufanymi nadawcami stosują ścisłą przychodzącą strategię HeaderFilterStrategy w przestrzeni nazw Camel i rozwiązują tajemnice poprzez skarbiec, a nie poprzez zmienne środowiskowe lub właściwości systemu, które może nazwać symbol zastępczy.
>_ Słabości (CWE)
>_ Referencje
- https://camel.apache.org/security/CVE-2026-78164.html
- https://github.com/apache/camel/commit/7cec534c66969015d85e56631143174dd150ed94
- https://github.com/apache/camel/commit/9f8a185e315ce9e120889c4106be3dbf4688e507
- https://github.com/apache/camel/commit/ba5aced7f6a1c38a963020575676ad4c76b492cf
- https://github.com/apache/camel/pull/25571
- https://issues.apache.org/jira/browse/CAMEL-24418
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