{"id":"CVE-2026-85254","kind":"vulnerability","aliases":["CVE-2026-85254"],"related":[],"title":"Apache Camel: header case mismatch lets callers echo headers into responses","description":"Improper Handling of Case Sensitivity vulnerability in Apache Camel Platform HTTP component.\n\nThis issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1.\n\nThe guard that prevents a request header being reflected into the response compared header names case sensitively, while HTTP header names are case insensitive. A caller could therefore defeat the suppression simply by varying the case of the header name. HTTP/2 makes the problem unconditional rather than optional: the protocol requires header names to be lowercase on the wire, so the comparison never matched and the suppression was inert for every request on an HTTP/2 connection. The consequence is that content the caller chose is echoed back in the response, which is the basis for response-splitting and cache-poisoning style attacks against whatever sits in front of the Camel endpoint.\n\nUpgrade to Apache Camel 4.23.0, which fixes the issue. Users on the 4.18.x LTS releases stream should upgrade to 4.18.5. Users on the 4.22.x LTS releases stream should upgrade to 4.22.1. Request header names are now compared case insensitively, so the suppression holds regardless of casing and works under HTTP/2. For deployments that cannot upgrade immediately, strip the headers in question in front of the Camel endpoint, or remove them from the response in the route rather than relying on the built-in suppression.","summary":"The Apache Camel Platform HTTP component was meant to stop request headers from being reflected into responses, but it compared header names case sensitively. Because HTTP header names are case insensitive, a caller can bypass the suppression by changing header name casing, and on HTTP/2 the suppression never applies at all.","severity":"medium","cvss":6.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache-camel","http2","java","package","platform-http"],"not_affected_if":["no-platform-http","patched-version"],"how_to_check":"- Check the Apache Camel version in the project build file (for example `camel-platform-http` or `camel-bom` in pom.xml or build.gradle) and see whether it is below `4.18.5` on the 4.18.x line or below `4.22.1` on the 4.22.x line\n- Check whether the application uses the Camel Platform HTTP component and serves HTTP/2\n- unknown whether the sources describe any further exposure check","fix":"- Upgrade Apache Camel to `4.23.0`\n- On the 4.18.x LTS stream, upgrade to `4.18.5`\n- On the 4.22.x LTS stream, upgrade to `4.22.1`\n- If upgrading is not possible now, strip the affected headers in front of the Camel endpoint or remove them from the response in the route","status":"open","published_at":"2026-10-19T11:17:23+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","triaged_at":"2026-10-25T03:57:12+00:00","updated_at":"2026-10-25T03:57:12+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:57:12Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Apache Camel to `4.23.0`\n- On the 4.18.x LTS stream, upgrade to `4.18.5`\n- On the 4.22.x LTS stream, upgrade to `4.22.1`\n- If upgrading is not possible now, strip the affected headers in front of the Camel endpoint or remove them from the response in the route","reach":"internet","title":"Apache Camel: header case mismatch lets callers echo headers into responses","impact":"medium","summary":"The Apache Camel Platform HTTP component was meant to stop request headers from being reflected into responses, but it compared header names case sensitively. Because HTTP header names are case insensitive, a caller can bypass the suppression by changing header name casing, and on HTTP/2 the suppression never applies at all.","category":"package","nicknames":[],"who_cares":["apache-camel","java","platform-http","http2"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Attacker-chosen content echoed in responses, enabling cache poisoning and response splitting","analyst_note":"","how_to_check":"- Check the Apache Camel version in the project build file (for example `camel-platform-http` or `camel-bom` in pom.xml or build.gradle) and see whether it is below `4.18.5` on the 4.18.x line or below `4.22.1` on the 4.22.x line\n- Check whether the application uses the Camel Platform HTTP component and serves HTTP/2\n- unknown whether the sources describe any further exposure check","needs_analyst":false,"not_affected_if":["patched-version","no-platform-http"],"who_is_affected":"Applications that run Apache Camel 4.0.0 through 4.18.4 or 4.19.0 through 4.22.0 with the Platform HTTP component and reflect request headers back to callers. Systems sitting behind a cache or proxy are the ones where the echoed content can cause response-splitting or cache-poisoning. Teams on Camel 4.23.0, 4.18.5 or 4.22.1 or later can skip it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.00074,"input_tokens":3682,"output_tokens":744,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-85254':14A,17A '4.0.0':94C '4.18':226C '4.18.5':96C,234C '4.19.0':98C '4.22':238C '4.22.1':100C,246C '4.23.0':218C 'affect':90C 'apach':1A,19B,28B,83C,91C,216C 'apache-camel':18B 'appli':75B 'attack':204C 'back':187C 'basi':194C 'built':298C 'built-in':297C 'bypass':61B 'cach':201C 'cache-poison':200C 'caller':7A,59B,126C,183C 'camel':2A,20B,29B,84C,92C,212C,217C,281C 'cannot':269C 'case':4A,49B,56B,68B,79C,116C,123C,136C,253C,261C 'chang':65B 'chose':184C 'compar':46B,113C,252C 'comparison':162C 'compon':32B,87C 'connect':176C 'consequ':178C 'content':181C 'could':127C 'cve':12A,15A 'defeat':129C 'deploy':267C 'echo':8A,186C 'endpoint':213C,282C 'everi':171C 'fix':220C 'front':209C,278C 'guard':102C 'handl':77C 'header':3A,9A,38B,47B,53B,66B,107C,114C,120C,139C,152C,248C,274C 'hold':258C 'http':26B,31B,52B,86C,119C 'http/2':71B,141C,175C,265C 'http2':21B 'immedi':271C 'improp':76C 'inert':169C 'insensit':57B,124C,254C 'issu':89C,222C 'java':22B 'let':6A 'lowercas':156C 'lts':228C,240C 'make':142C 'match':164C 'meant':34B 'mismatch':5A 'name':48B,54B,67B,115C,121C,140C,153C,249C 'never':74B,163C 'option':148C 'packag':23B 'platform':25B,30B,85C 'platform-http':24B 'poison':202C 'prevent':104C 'problem':144C 'protocol':150C 'question':276C 'rather':146C,292C 'reflect':41B,109C 'regardless':259C 'releas':229C,241C 'reli':294C 'remov':284C 'request':37B,106C,172C,247C 'requir':151C 'respons':11A,43B,112C,190C,197C,288C 'response-split':196C 'rout':291C 'sensit':50B,80C,117C 'simpli':132C 'sit':207C 'split':198C 'stop':36B 'stream':230C,242C 'strip':272C 'style':203C 'suppress':63B,73B,131C,167C,257C,300C 'therefor':128C 'uncondit':145C 'upgrad':214C,232C,244C,270C 'user':223C,235C 'vari':134C 'vulner':81C 'whatev':206C 'wire':159C 'work':263C 'x':227C,239C","nicknames":[],"mitigations":[],"who_affected":"Applications that run Apache Camel 4.0.0 through 4.18.4 or 4.19.0 through 4.22.0 with the Platform HTTP component and reflect request headers back to callers. Systems sitting behind a cache or proxy are the ones where the echoed content can cause response-splitting or cache-poisoning. Teams on Camel 4.23.0, 4.18.5 or 4.22.1 or later can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-19T11:17:23+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","cvss_by":"security@apache.org","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-85254","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-85254","severity":null,"published_at":"2026-10-19T11:17:23+00:00","modified_at":"2026-10-19T20:45:51+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","fetched_at":"2026-10-23T22:28:57+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}