{"id":"CVE-2026-28368","kind":"vulnerability","aliases":["CVE-2026-28368","GHSA-8v4x-mgvp-p658"],"related":[],"title":"Undertow is Vulnerable to HTTP Request/Response Smuggling","description":"A flaw was found in Undertow. This vulnerability allows a remote attacker to construct specially crafted requests where header names are parsed differently by Undertow compared to upstream proxies. This discrepancy in header interpretation can be exploited to launch request smuggling attacks, potentially bypassing security controls and accessing unauthorized resources.","summary":"Undertow parses some HTTP header names differently from upstream proxies, so a crafted request can be read one way by the proxy and another way by Undertow. An attacker can use this to bypass security controls and reach resources they should not access.","severity":"critical","cvss":9.1,"epss":0.00732,"exploited":false,"exploited_at":null,"products":[{"name":"io.undertow:undertow-core","fixed":["2.2.40.Final"],"affected":"< 2.2.40.Final","ecosystem":"maven"},{"name":"io.undertow:undertow-core","fixed":["2.3.25.Final"],"affected":">= 2.3.0.Final, < 2.3.25.Final","ecosystem":"maven"},{"name":"redhat build of apache camel - hawtio","fixed":[],"affected":"= 4.0","ecosystem":"vendor"},{"name":"redhat build of apache camel for spring boot","fixed":[],"affected":"= 4.0","ecosystem":"vendor"},{"name":"redhat data grid","fixed":[],"affected":"= 8.0","ecosystem":"vendor"},{"name":"redhat fuse","fixed":[],"affected":"= 7.0.0","ecosystem":"vendor"},{"name":"redhat jboss enterprise application platform","fixed":[],"affected":"= 7.0.0","ecosystem":"vendor"},{"name":"redhat jboss enterprise application platform","fixed":[],"affected":"= 8.0.0","ecosystem":"vendor"},{"name":"redhat jboss enterprise application platform expansion pack","fixed":[],"affected":"","ecosystem":"vendor"},{"name":"redhat process automation","fixed":[],"affected":"= 7.0","ecosystem":"vendor"},{"name":"redhat single sign-on","fixed":[],"affected":"= 7.0","ecosystem":"vendor"},{"name":"redhat undertow","fixed":[],"affected":"","ecosystem":"vendor"},{"name":"redhat enterprise linux","fixed":[],"affected":"= 9.0","ecosystem":"vendor"}],"ecosystems":["maven","vendor"],"tags":["cwe-444","java","jboss","maven","package","undertow","wildfly"],"not_affected_if":["no-proxy-in-front","version-outside-affected-range"],"how_to_check":"- Check the version of `io.undertow:undertow-core` in your Maven dependency tree (for example with `mvn dependency:tree`).\n- Confirm whether a reverse proxy or load balancer sits in front of the Undertow application.","fix":"- `io.undertow:undertow-core` `2.2.40.Final` for the 2.2.x line\n- `io.undertow:undertow-core` `2.3.25.Final` for the 2.3.x line","status":"open","published_at":"2026-03-27T17:16:27+00:00","first_seen_at":"2026-11-04T21:24:04+00:00","triaged_at":"2026-11-04T21:25:27+00:00","updated_at":"2026-11-04T21:49:23+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-04T21:25:27Z","model":"claude-haiku-5-5","output":{"fix":"- `io.undertow:undertow-core` `2.2.40.Final` for the 2.2.x line\n- `io.undertow:undertow-core` `2.3.25.Final` for the 2.3.x line","reach":"internet","title":"Undertow: header parsing mismatch lets requests smuggle past proxies","impact":"medium","summary":"Undertow parses some HTTP header names differently from upstream proxies, so a crafted request can be read one way by the proxy and another way by Undertow. An attacker can use this to bypass security controls and reach resources they should not access.","audience":"developers","category":"package","nicknames":[],"who_cares":["java","undertow","maven","wildfly","jboss"],"confidence":0.7,"fix_status":"available","needs_auth":"no","worst_case":"Attacker bypasses proxy security controls and reaches unauthorized resources","analyst_note":"","how_to_check":"- Check the version of `io.undertow:undertow-core` in your Maven dependency tree (for example with `mvn dependency:tree`).\n- Confirm whether a reverse proxy or load balancer sits in front of the Undertow application.","plain_action":"","needs_analyst":false,"not_affected_if":["version-outside-affected-range","no-proxy-in-front"],"who_is_affected":"Applications that run Undertow as the HTTP server behind a proxy, load balancer or gateway that parses headers itself are the exposed case. Standalone Undertow with no proxy in front still parses the same headers, so the version check matters there too. Teams on a version outside the affected ranges can skip it.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000719,"input_tokens":4278,"output_tokens":583,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':9A,17A '-28368':10A,18A '-444':77B '8v4x':13A 'access':126B,174C 'allow':135C 'anoth':107B 'apache':30A,36A 'application':49A,54A,59A 'attack':112B,138C,168C 'automation':65A 'boot':40A 'build':28A,34A 'bypass':117B,170C 'camel':31A,37A 'compar':152C 'construct':140C 'control':119B,172C 'core':22A,26A 'craft':96B,142C 'cve':8A,16A 'cwe':76B 'data':42A 'differ':90B,149C 'discrep':157C 'enterprise':48A,53A,58A,74A 'expansion':61A 'exploit':163C 'flaw':128C 'for':38A 'found':130C 'fuse':45A 'ghsa':12A 'ghsa-8v4x-mgvp-p658':11A 'grid':43A 'hawtio':32A 'header':88B,145C,159C 'http':5A,87B 'interpret':160C 'io.undertow':19A,23A 'java':78B 'jboss':47A,52A,57A,79B 'launch':165C 'linux':75A 'maven':80B 'mgvp':14A 'name':89B,146C 'of':29A,35A 'on':70A 'one':101B 'p658':15A 'pack':62A 'packag':81B 'pars':85B,148C 'platform':50A,55A,60A 'potenti':169C 'process':64A 'proxi':93B,105B,155C 'reach':121B 'read':100B 'redhat':27A,33A,41A,44A,46A,51A,56A,63A,66A,71A,73A 'remot':137C 'request':97B,143C,166C 'request/response':6A 'resourc':122B,176C 'secur':118B,171C 'sign':69A 'sign-on':68A 'single':67A 'smuggl':7A,167C 'special':141C 'spring':39A 'unauthor':175C 'undertow':1A,21A,25A,72A,82B,84B,110B,132C,151C 'undertow-core':20A,24A 'upstream':92B,154C 'use':114B 'vulner':3A,134C 'way':102B,108B 'wildfli':83B","nicknames":[],"mitigations":[],"who_affected":"Applications that run Undertow as the HTTP server behind a proxy, load balancer or gateway that parses headers itself are the exposed case. Standalone Undertow with no proxy in front still parses the same headers, so the version check matters there too. Teams on a version outside the affected ranges can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["buildofapachecamelforspringboot","buildofapachecamelhawtio","datagrid","enterpriselinux","fuse","ioundertowundertowcore","jbossenterpriseapplicationplatform","jbossenterpriseapplicationplatformexpansionpack","processautomation","redhatbuildofapachecamelforspringboot","redhatbuildofapachecamelhawtio","redhatdatagrid","redhatenterpriselinux","redhatfuse","redhatjbossenterpriseapplicationplatform","redhatjbossenterpriseapplicationplatformexpansionpack","redhatprocessautomation","redhatsinglesignon","redhatundertow","singlesignon","undertow"],"ptokens":["apache","application","automation","boot","build","camel","core","data","enterprise","expansion","for","fuse","grid","hawtio","io","jboss","linux","of","on","pack","platform","process","redhat","sign","single","spring","undertow"],"labels":["critical","cwe444","java","jboss","maven","package","undertow","vendor","wildfly"],"campaign_type":null,"first_public_at":"2026-03-27T17:16:27+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-8v4x-mgvp-p658","url":"https://github.com/advisories/GHSA-8v4x-mgvp-p658","severity":"high","published_at":"2026-03-27T18:31:27+00:00","modified_at":"2026-11-04T21:17:20+00:00","first_seen_at":"2026-11-04T21:24:04+00:00","fetched_at":"2026-11-04T22:10:17+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-28368","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-28368","severity":null,"published_at":"2026-03-27T17:16:27+00:00","modified_at":"2026-10-26T21:10:00+00:00","first_seen_at":"2026-11-04T21:49:23+00:00","fetched_at":"2026-11-04T21:49:23+00:00","note":null}],"documents":[{"id":70353,"url":"https://github.com/undertow-io/undertow/commit/3ece0bf2b2cf5e01db8ca25e41b831e66d3f5961","title":"Patch: github.com","kind":"other","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":70354,"url":"https://github.com/undertow-io/undertow/commit/904e26f1be62fb00b440538608a9574839821878","title":"Patch: github.com","kind":"other","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":70355,"url":"https://github.com/undertow-io/undertow/commit/c5dc41479e9c3576552d7e98e31bb1c237ae155e","title":"Patch: github.com","kind":"other","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":70714,"url":"https://access.redhat.com/security/cve/CVE-2026-28368","title":"Vendor advisory: access.redhat.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Vendor advisory: access.redhat.com"},{"id":70715,"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2443261","title":"Vendor advisory: bugzilla.redhat.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Vendor advisory: bugzilla.redhat.com"}],"exploit_sources":[{"type":"epss","score":0.00732,"url":"https://api.first.org/data/v1/epss?cve=CVE-2026-28368"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}