Niekompletna poprawka dla CVE-2025-27636 pozostawiła pięć implementacji HeaderFilterStrategy w Apache Camel podatnymi na wstrzykiwanie wewnętrznych nagłówków Camel z użyciem wariantów wielkości liter. Podatność o ocenie CVSS 9.9 umożliwia zdalne wykonanie kodu oraz zapis dowolnych plików na serwerze.
▸ Pokaż oryginał (EN)
The fix for CVE-2025-27636 added setLowerCase(true) to HttpHeaderFilterStrategy so that case-variant header names such as 'CAmelExecCommandExecutable' are filtered out alongside 'CamelExecCommandExecutable'. The same setLowerCase(true) call was not applied to five non-HTTP HeaderFilterStrategy implementations: JmsHeaderFilterStrategy and ClassicJmsHeaderFilterStrategy in camel-jms, SjmsHeaderFilterStrategy in camel-sjms, CoAPHeaderFilterStrategy in camel-coap, and GooglePubsubHeaderFilterStrategy in camel-google-pubsub. Because those strategies use case-sensitive String.startsWith('Camel'/'camel') filtering while the Camel Exchange stores headers in a case-insensitive map, an attacker with JMS (or equivalent) producer access to the broker consumed by a Camel route can inject case-variant Camel internal headers, which are then resolved by downstream components such as camel-exec and camel-file using their canonical casing. This enables remote code execution and arbitrary file write on routes that forward JMS messages to header-driven components. This issue affects Apache Camel: from 3.0.0 before 4.14.6, from 4.15.0 before 4.18.2, from 4.19.0 before 4.20.0. Users are recommended to upgrade to version 4.20.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.6. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.2.
Poprawka do CVE-2025-27636 dodała flagę setLowerCase(true) wyłącznie do HttpHeaderFilterStrategy, pomijając pięć innych implementacji: JmsHeaderFilterStrategy, ClassicJmsHeaderFilterStrategy (camel-jms), SjmsHeaderFilterStrategy (camel-sjms), CoAPHeaderFilterStrategy (camel-coap) oraz GooglePubsubHeaderFilterStrategy (camel-google-pubsub). Strategie te filtrują nagłówki metodą case-sensitive String.startsWith('Camel'/'camel'), podczas gdy mapa nagłówków Camel Exchange jest case-insensitive. Atakujący posiadający dostęp producenta do brokera JMS (lub równoważnego) może wysłać nagłówek z wariantem wielkości liter, np. 'CAmelExecCommandExecutable', który nie zostanie odfiltrowany. Taki nagłówek jest następnie rozpoznawany przez komponenty downstream (np. camel-exec, camel-file) według ich kanonicznej nazwy, co prowadzi do wykonania nieautoryzowanych poleceń lub zapisu plików.
Atakujący z dostępem producenta do brokera JMS może wykonać dowolny kod na serwerze (RCE) oraz zapisać dowolne pliki w systemie plików, co w praktyce oznacza pełne przejęcie kontroli nad maszyną obsługującą trasę Camel.
Należy zaktualizować Apache Camel do wersji 4.20.0. Użytkownicy gałęzi LTS 4.14.x powinni przejść na wersję 4.14.6, a użytkownicy gałęzi 4.18.x na wersję 4.18.2. Dodatkowo warto ograniczyć dostęp producenta do brokerów JMS wyłącznie do zaufanych klientów.
Apache Camel w wersjach od 3.0.0 przed 4.14.6, od 4.15.0 przed 4.18.2 oraz od 4.19.0 przed 4.20.0; dotyczy komponentów camel-jms, camel-sjms, camel-coap oraz camel-google-pubsub
Podatność stanowi niekompletną naprawę wcześniejszego CVE-2025-27636 — ten sam wektor ataku (wstrzykiwanie nagłówków Camel) pozostał możliwy w pięciu implementacjach HeaderFilterStrategy, które nie otrzymały analogicznej poprawki co HttpHeaderFilterStrategy.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HApache Camel
APPApache4.19.03.0.0 – 4.14.6 (bez)4.15.0 – 4.18.2 (bez)
Powiązane podatności
Apache Camel: wstrzyknięcie nagłówków HTTP w camel-cxf i camel-knative (RCE)
Apache Camel: niebezpieczna deserializacja JMS ObjectMessage prowadząca do RCE
Apache Camel: wstrzyknięcie nagłówków przez komponent Camel-Mail
Apache Camel camel-coap: RCE poprzez wstrzyknięcie nagłówków Camel
Apache Camel: pominięcie weryfikacji issuer JWT w KeycloakSecurityPolicy