CVE-2026-95664
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
Niewłaściwa neutralizacja elementów specjalnych używanych w instrukcji języka wyrażeń („luka w zakresie wstrzykiwania języka wyrażeń”) w komponencie Apache Camel AWS2-s3.
Ten problem dotyczy Apache Camel: od 4.8.0 przed 4.18.5, od 4.19.0 przed 4.22.2.
W przypadku obiektu, który przesyła, odczytuje lub usuwa, producent camel-aws2-s3 pobiera klucz z nagłówka wiadomości CamelAwsS3Key i powraca do opcji keyName skonfigurowanej na punkcie końcowym tylko wtedy, gdy ten nagłówek jest nieobecny. Od wersji 4.8.0 funkcja AWS2S3Utils.determineKey() również przekazywała wynikową wartość do języka Simple, gdy zawierała ${ lub $simple{, dzięki czemu trasa mogła używać klucza dynamicznego, a ocena dotyczyła wartości pobranej z nagłówka, a także skonfigurowanej opcji. Nagłówek nie jest jednak konfiguracją trasy: konsument aws2-s3 ustawia CamelAwsS3Key na tworzonych przez siebie giełdach na klucz odczytanego obiektu, czyli nazwę obiektu w zasobniku. W przypadku trasy, która nie robi nic więcej niż korzystanie z jednego punktu końcowego aws2-s3 i produkcja do innego, nazwa każdego zużytego obiektu dotarła zatem do producenta, a nazwa zawierająca którykolwiek ze znaczników została oceniona jako wyrażenie, chociaż autor trasy nigdy nie prosił o jakąkolwiek ocenę, a skonfigurowanie keyName na producencie nie zapobiegło temu, ponieważ nagłówek miał pierwszeństwo. W ten sam sposób oceniano klucz, który trasa skopiowała do nagłówka z innej treści wiadomości. Każdy, kto może wybrać nazwę obiektu w zasobniku, z którego korzysta taka trasa (zazwyczaj podmiot główny, który może przesyłać dane do tego zasobnika), może zatem poddać wybrane przez siebie proste wyrażenia oceniane w procesie Camel. Język Simple może odczytywać właściwości systemu JVM, zmienne środowiskowe i właściwości konfiguracyjne, które zwykle zawierają poświadczenia, a także, jeśli w ścieżce klasy znajduje się komponent Camel-Bean, wywoływać metody komponentów Bean w rejestrze. Oceniony wynik stał się kluczem używanym przez producenta, więc ponowne odczytanie wartości wymagało dodatkowo możliwości zobaczenia nazw obiektów w zasobniku docelowym, podczas gdy wywołanie metody zadziałało bez niego; w połączeniu z koniecznością nazwania przedmiotu w zużytym wiadrze, dlatego też dotkliwość oceniana jest na średnią. Nazwa wiadra przeszła tę samą ocenę, ale konsument zawsze umieszczał w nagłówku wiadra skonfigurowany tylko w swoim własnym punkcie końcowym, a nigdy w wartości pochodzącej z obiektu zdalnego, więc nazwa wiadra nie była osiągalna w ten sposób. W wersjach wcześniejszych niż 4.8.0 używany był klucz z nagłówka w podanej postaci i nie ma to na to wpływu.
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. Jeśli użytkownicy korzystają ze strumienia wydań 4.18.x, sugeruje się im aktualizację do wersji 4.18.5. Linie wydań 4.8.x do 4.17.xi 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. Po aktualizacji nazwa klucza lub segmentu podana w nagłówku wiadomości jest używana dosłownie, więc trasa, która umieszcza nieocenione wyrażenie proste w nagłówku CamelAwsS3Key lub CamelAwsS3OverrideBucketName, musi zamiast tego ocenić je w trasie, na przykład za pomocą setHeader i simple() lub skonfigurować je jako opcję keyName lub BucketName punktu końcowego. W przypadku wdrożeń, których nie można uaktualnić natychmiast, nie pozwól, aby klucz pochodzący z nazwy obiektu lub innej niezaufanej treści wiadomości dotarł do producenta aws2-s3 bez zaznaczenia: w trasach, które przekazują wymianę od konsumenta aws2-s3 do producenta aws2-s3, albo usuń nagłówek CamelAwsS3Key przed producentem za pomocą polecenia RemoveHeader("CamelAwsS3Key"), aby użyta została nazwa klucza skonfigurowana na punkcie końcowym, lub odrzuć wymiany którego nagłówek CamelAwsS3Key zawiera ${ lub $simple{. Skonfigurowanie samej nazwy klucza nie jest rozwiązaniem, ponieważ nagłówek ma nad nim pierwszeństwo. W ramach dogłębnej obrony zezwalaj tylko zaufanym podmiotom zabezpieczeń na zapis w zasobnikach zużywanych przez trasy Camel.
>_ Słabości (CWE)
>_ Referencje
- https://camel.apache.org/security/CVE-2025-27636.html
- https://camel.apache.org/security/CVE-2026-78164.html
- https://camel.apache.org/security/CVE-2026-83531.html
- https://camel.apache.org/security/CVE-2026-95664.html
- https://github.com/apache/camel/pull/26746
- https://github.com/apache/camel/pull/26840
- https://github.com/apache/camel/pull/26841
- https://github.com/apache/camel/pull/26842
- https://github.com/apache/camel/pull/26889
- https://issues.apache.org/jira/browse/CAMEL-20971
- https://issues.apache.org/jira/browse/CAMEL-24901
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