{"id":"CVE-2026-128424","kind":"vulnerability","aliases":["CVE-2026-128424"],"related":[],"title":"Kroxylicious: ACL regex escapes lost, allow rules match extra Kafka resources","description":"A flaw was found in Kroxylicious. The ACL authorizer's rules-file parser unquotes `matching /…/` regular-expression literals using the string unquoting rules, which strips every backslash escape. As a result, an allow rule such as `matching /orders\\.v1/` is compiled as the regex `orders.v1`, which also matches unintended names such as `ordersXv1`, and character classes such as `\\d` and `\\w` lose their special meaning. Allow rules written with regex escapes can therefore apply to more resources than the author intended. Depending on the ACL configuration, this may allow an authenticated Kafka client to access a resource (such as read or write a topic) that should have been denied.","summary":"Kroxylicious, a Kafka proxy, drops backslash escapes from regex literals in its ACL rules file. An allow rule such as matching /orders\\.v1/ then also matches names like ordersXv1, so an authenticated Kafka client can reach topics it should be denied.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["acl","infrastructure","kafka","kroxylicious"],"not_affected_if":["auth-required","no-regex-acl-rules"],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-11-13T07:17:20+00:00","first_seen_at":"2026-11-13T07:45:52+00:00","triaged_at":"2026-11-13T07:47:12+00:00","updated_at":"2026-11-13T07:47:12+00:00","category":"infrastructure","confidence":0.6,"triage":{"at":"2026-11-13T07:47:12Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"Kroxylicious: ACL regex escapes lost, allow rules match extra Kafka resources","impact":"medium","summary":"Kroxylicious, a Kafka proxy, drops backslash escapes from regex literals in its ACL rules file. An allow rule such as matching /orders\\.v1/ then also matches names like ordersXv1, so an authenticated Kafka client can reach topics it should be denied.","audience":"businesses","category":"infrastructure","nicknames":[],"who_cares":["kroxylicious","kafka","acl"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"authenticated client accesses topics its ACL should deny","analyst_note":"Confirm affected Kroxylicious version ranges and fixed release from the NVD entry or the project's advisory; sources given name no versions.","how_to_check":"- unknown","plain_action":"","product_name":"","needs_analyst":true,"not_affected_if":["no-regex-acl-rules","auth-required"],"who_is_affected":"Teams running Kroxylicious with an ACL authorizer whose rules file uses regex literals with backslash escapes (for example \\d, \\w or \\.) in matching /.../ allow rules. Clusters that use no ACL rules with regex literals, or that do not use the ACL authorizer, are not described as exposed by the sources. Exploitation requires an authenticated Kafka client.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000734,"input_tokens":4655,"output_tokens":537,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-128424':14A,17A '-2026':13A,16A '/orders':43B,102C 'access':159C 'acl':2A,18B,34B,70C,149C 'allow':6A,38B,97C,130C,153C 'also':46B,111C 'appli':138C 'authent':53B,155C 'author':71C,144C 'backslash':27B,91C 'charact':119C 'class':120C 'client':55B,157C 'compil':105C 'configur':150C 'cve':12A,15A 'd':123C 'deni':62B,173C 'depend':146C 'drop':26B 'escap':4A,28B,92C,135C 'everi':90C 'express':81C 'extra':9A 'file':36B,75C 'flaw':64C 'found':66C 'infrastructur':19B 'intend':145C 'kafka':10A,20B,24B,54B,156C 'kroxylici':1A,21B,22B,68C 'like':49B 'liter':31B,82C 'lose':126C 'lost':5A 'match':8A,42B,47B,78C,101C,112C 'may':152C 'mean':129C 'name':48B,114C 'orders.v1':109C 'ordersxv1':50B,117C 'parser':76C 'proxi':25B 'reach':57B 'read':164C 'regex':3A,30B,108C,134C 'regular':80C 'regular-express':79C 'resourc':11A,141C,161C 'result':95C 'rule':7A,35B,39B,74C,87C,98C,131C 'rules-fil':73C 'special':128C 'string':85C 'strip':89C 'therefor':137C 'topic':58B,168C 'unintend':113C 'unquot':77C,86C 'use':83C 'v1':44B,103C 'w':125C 'write':166C 'written':132C","nicknames":[],"mitigations":[],"who_affected":"Teams running Kroxylicious with an ACL authorizer whose rules file uses regex literals with backslash escapes (for example \\d, \\w or \\.) in matching /.../ allow rules. Clusters that use no ACL rules with regex literals, or that do not use the ACL authorizer, are not described as exposed by the sources. Exploitation requires an authenticated Kafka client.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["acl","infrastructure","kafka","kroxylicious","medium"],"campaign_type":null,"search_a":"'-128424':14A,17A '-2026':13A,16A 'acl':2A 'allow':6A 'cve':12A,15A 'escap':4A 'extra':9A 'kafka':10A 'kroxylici':1A 'lost':5A 'match':8A 'regex':3A 'resourc':11A 'rule':7A","search_b":"'/orders':43B 'acl':18B,34B 'allow':38B 'also':46B 'authent':53B 'backslash':27B 'client':55B 'deni':62B 'drop':26B 'escap':28B 'file':36B 'infrastructur':19B 'kafka':20B,24B,54B 'kroxylici':21B,22B 'like':49B 'liter':31B 'match':42B,47B 'name':48B 'ordersxv1':50B 'proxi':25B 'reach':57B 'regex':30B 'rule':35B,39B 'topic':58B 'v1':44B","search_c":"'/orders':102C 'access':159C 'acl':70C,149C 'allow':97C,130C,153C 'also':111C 'appli':138C 'authent':155C 'author':71C,144C 'backslash':91C 'charact':119C 'class':120C 'client':157C 'compil':105C 'configur':150C 'd':123C 'deni':173C 'depend':146C 'escap':92C,135C 'everi':90C 'express':81C 'file':75C 'flaw':64C 'found':66C 'intend':145C 'kafka':156C 'kroxylici':68C 'liter':82C 'lose':126C 'match':78C,101C,112C 'may':152C 'mean':129C 'name':114C 'orders.v1':109C 'ordersxv1':117C 'parser':76C 'read':164C 'regex':108C,134C 'regular':80C 'regular-express':79C 'resourc':141C,161C 'result':95C 'rule':74C,87C,98C,131C 'rules-fil':73C 'special':128C 'string':85C 'strip':89C 'therefor':137C 'topic':168C 'unintend':113C 'unquot':77C,86C 'use':83C 'v1':103C 'w':125C 'write':166C 'written':132C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-13T07:17:20+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N","cvss_by":"secalert@redhat.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-128424","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-128424","severity":null,"published_at":"2026-11-13T07:17:20+00:00","modified_at":"2026-11-13T07:17:20+00:00","first_seen_at":"2026-11-13T07:45:52+00:00","fetched_at":"2026-11-13T07:45:52+00:00","note":null}],"documents":[],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}