{"id":"CVE-2026-112778","kind":"vulnerability","aliases":["CVE-2026-112778"],"related":[],"title":"Traefik: Kubernetes Ingress annotations reach other namespaces' credentials and certificates","description":"Traefik before 2.11.46, 3.x before 3.6.17, and 3.7.0 lack namespace validation for Ingress and Service annotations in the Kubernetes Ingress provider, allowing references to Middlewares, ServersTransports, and TLSOptions in other namespaces. Attackers able to create or update Ingress or Service resources in one namespace can set router.middlewares or service.serverstransport annotations to obtain another tenant's injected credentials or reuse its client certificates, bypassing namespace-based tenant isolation.","summary":"Traefik's Kubernetes Ingress provider does not check namespaces when Ingress or Service annotations reference Middlewares, ServersTransports, or TLSOptions. A user who can create or update Ingress or Service resources in one namespace can reuse another tenant's injected credentials or client certificates.","severity":"high","cvss":8.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"traefik","fixed":["2.11.46"],"affected":"< 2.11.46","ecosystem":"vendor"},{"name":"traefik","fixed":["3.6.16"],"affected":">= 3.0.0, < 3.6.16","ecosystem":"vendor"},{"name":"traefik","fixed":[],"affected":"= 3.7.0","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["ingress-controller","kubernetes","multi-tenant","runtime","traefik"],"not_affected_if":["kubernetes-provider-disabled","no-untrusted-namespace-users","single-tenant-cluster"],"how_to_check":"Compare the running Traefik version against the affected ranges: below 2.11.46, 3.x below 3.6.17, and 3.7.0. Exposed if the Kubernetes Ingress provider serves several tenant namespaces. The sources give no command.","fix":"Upgrade to Traefik 2.11.46 or 3.6.17 or later. The sources give no fixed version for 3.7.0.","status":"open","published_at":"2026-10-19T20:17:55+00:00","first_seen_at":"2026-10-23T21:57:19+00:00","triaged_at":"2026-10-23T22:33:07+00:00","updated_at":"2026-10-23T22:33:07+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-10-23T22:33:07Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade to Traefik 2.11.46 or 3.6.17 or later. The sources give no fixed version for 3.7.0.","reach":"network","title":"Traefik: Kubernetes Ingress annotations reach other namespaces' credentials and certificates","impact":"high","summary":"Traefik's Kubernetes Ingress provider does not check namespaces when Ingress or Service annotations reference Middlewares, ServersTransports, or TLSOptions. A user who can create or update Ingress or Service resources in one namespace can reuse another tenant's injected credentials or client certificates.","category":"runtime","who_cares":["traefik","kubernetes","multi-tenant","ingress-controller"],"confidence":0.8,"needs_auth":"yes","worst_case":"Attacker reads other tenants' injected credentials and client certificates.","analyst_note":"Sources conflict on the 3.x fixed version (3.6.16 in product data, 3.6.17 in description) and give no fix for 3.7.0; check the NVD record at https://nvd.nist.gov/vuln/detail/CVE-2026-112778 and the Traefik release notes.","how_to_check":"Compare the running Traefik version against the affected ranges: below 2.11.46, 3.x below 3.6.17, and 3.7.0. Exposed if the Kubernetes Ingress provider serves several tenant namespaces. The sources give no command.","needs_analyst":true,"not_affected_if":["single-tenant-cluster","kubernetes-provider-disabled","no-untrusted-namespace-users"],"user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.001217,"input_tokens":3087,"output_tokens":1817,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-112778':13A,16A '-2026':12A,15A '2.11.46':74C '3':75C '3.6.17':78C '3.7.0':80C 'abl':105C 'allow':94C 'annot':4A,42B,88C,122C 'anoth':64B,125C 'attack':104C 'base':138C 'bypass':135C 'certif':10A,71B,134C 'check':36B 'client':70B,133C 'control':22B 'creat':52B,107C 'credenti':8A,68B,129C 'cve':11A,14A 'ingress':3A,21B,32B,39B,55B,85C,92C,110C 'ingress-control':20B 'inject':67B,128C 'isol':140C 'kubernet':2A,23B,31B,91C 'lack':81C 'middlewar':44B,97C 'multi':25B 'multi-ten':24B 'namespac':7A,37B,61B,82C,103C,116C,137C 'namespace-bas':136C 'obtain':124C 'one':60B,115C 'provid':33B,93C 'reach':5A 'refer':43B,95C 'resourc':58B,113C 'reus':63B,131C 'router.middlewares':119C 'runtim':27B 'serverstransport':45B,98C 'servic':41B,57B,87C,112C 'service.serverstransport':121C 'set':118C 'tenant':26B,65B,126C,139C 'tlsoption':47B,100C 'traefik':1A,17A,18A,19A,28B,29B,72C 'updat':54B,109C 'user':49B 'valid':83C 'x':76C","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-19T20:17:55+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:L/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-112778","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-112778","severity":null,"published_at":"2026-10-19T20:17:55+00:00","modified_at":"2026-10-23T17:04:01+00:00","first_seen_at":"2026-10-23T21:57:19+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"}