{"id":"CVE-2026-91163","kind":"vulnerability","aliases":["CVE-2026-91163"],"related":[],"title":"Warpgate: Kubernetes listener leaks internal errors and skips request logging","description":"Warpgate is an open source SSH, HTTPS, and MySQL bastion host for Linux. Prior to 0.29.0, the Kubernetes protocol listener uses AcceptAnyClientCert in warpgate-protocol-kubernetes/src/server/client_certs.rs to accept certificates at the TLS layer and defer validation to warpgate-protocol-kubernetes/src/server/auth.rs, where authentication and lookup failures are rendered verbatim in an HTTP 500 response body. The Kubernetes application in warpgate-protocol-kubernetes/src/server/mod.rs lacks the outer request-logging wrapper used by the HTTP protocol, and failures in warpgate-protocol-kubernetes/src/server/handlers.rs can short-circuit before its inner log point. An unauthenticated network client can therefore induce failures and receive ASN.1/DER parser diagnostics or sea_orm database errors without the attempt being recorded in the gateway log. The disclosed information is limited to internal diagnostics, and no user-data, integrity, or availability impact is established. This issue is fixed in version 0.29.0.","summary":"Warpgate's Kubernetes protocol listener accepts any client certificate at the TLS layer and returns authentication and database error text in HTTP 500 responses. An unauthenticated network client can read internal diagnostics, and the attempts are not recorded in the gateway log.","severity":"low","cvss":3.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["kubernetes","package","self-hosted","warpgate"],"not_affected_if":["kubernetes-listener-disabled","version-0.29.0-or-later"],"how_to_check":"- Check the installed Warpgate version: `warpgate --version` (or the version in your deployment image), and see whether it is below `0.29.0`.\n- Check whether the Kubernetes protocol listener is enabled in the Warpgate configuration.","fix":"- Warpgate: upgrade to `0.29.0`","status":"open","published_at":"2026-11-04T16:17:54+00:00","first_seen_at":"2026-11-04T16:28:15+00:00","triaged_at":"2026-11-04T16:29:00+00:00","updated_at":"2026-11-04T16:29:00+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-04T16:29:00Z","model":"claude-haiku-5-5","output":{"fix":"- Warpgate: upgrade to `0.29.0`","reach":"network","title":"Warpgate: Kubernetes listener leaks internal errors and skips request logging","impact":"low","summary":"Warpgate's Kubernetes protocol listener accepts any client certificate at the TLS layer and returns authentication and database error text in HTTP 500 responses. An unauthenticated network client can read internal diagnostics, and the attempts are not recorded in the gateway log.","audience":"businesses","category":"package","nicknames":[],"who_cares":["warpgate","kubernetes","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"Internal error diagnostics and database error text leak to network clients","analyst_note":"","how_to_check":"- Check the installed Warpgate version: `warpgate --version` (or the version in your deployment image), and see whether it is below `0.29.0`.\n- Check whether the Kubernetes protocol listener is enabled in the Warpgate configuration.","plain_action":"","needs_analyst":false,"not_affected_if":["kubernetes-listener-disabled","version-0.29.0-or-later"],"who_is_affected":"Teams running Warpgate as a bastion with the Kubernetes protocol listener exposed to the network. The flaw is in the TLS and error-handling path of that listener, so deployments that do not enable it are not exposed. The sources report only internal diagnostics disclosure, with no stated data-integrity or availability impact.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000723,"input_tokens":4443,"output_tokens":557,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-91163':13A,16A '/src/server/auth.rs':108C '/src/server/client_certs.rs':92C '/src/server/handlers.rs':151C '/src/server/mod.rs':131C '0.29.0':80C,213C '500':45B,120C 'accept':28B,94C 'acceptanyclientcert':86C 'applic':125C 'asn.1/der':171C 'attempt':57B,181C 'authent':38B,110C 'avail':203C 'bastion':74C 'bodi':122C 'certif':31B,95C 'circuit':155C 'client':30B,50B,164C 'cve':11A,14A 'data':200C 'databas':40B,177C 'defer':101C 'diagnost':54B,173C,195C 'disclos':189C 'error':6A,41B,178C 'establish':206C 'failur':113C,145C,168C 'fix':210C 'gateway':63B,186C 'host':21B,75C 'http':44B,119C,142C 'https':71C 'impact':204C 'induc':167C 'inform':190C 'inner':158C 'integr':201C 'intern':5A,53B,194C 'issu':208C 'kubernet':2A,17B,25B,82C,91C,107C,124C,130C,150C 'lack':132C 'layer':35B,99C 'leak':4A 'limit':192C 'linux':77C 'listen':3A,27B,84C 'log':10A,64B,137C,159C,187C 'lookup':112C 'mysql':73C 'network':49B,163C 'open':68C 'orm':176C 'outer':134C 'packag':18B 'parser':172C 'point':160C 'prior':78C 'protocol':26B,83C,90C,106C,129C,143C,149C 'read':52B 'receiv':170C 'record':60B,183C 'render':115C 'request':9A,136C 'request-log':135C 'respons':46B,121C 'return':37B 'sea':175C 'self':20B 'self-host':19B 'short':154C 'short-circuit':153C 'skip':8A 'sourc':69C 'ssh':70C 'text':42B 'therefor':166C 'tls':34B,98C 'unauthent':48B,162C 'use':85C,139C 'user':199C 'user-data':198C 'valid':102C 'verbatim':116C 'version':212C 'warpgat':1A,22B,23B,65C,89C,105C,128C,148C 'warpgate-protocol-kubernet':88C,104C,127C,147C 'without':179C 'wrapper':138C","nicknames":[],"mitigations":[],"who_affected":"Teams running Warpgate as a bastion with the Kubernetes protocol listener exposed to the network. The flaw is in the TLS and error-handling path of that listener, so deployments that do not enable it are not exposed. The sources report only internal diagnostics disclosure, with no stated data-integrity or availability impact.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["kubernetes","low","package","selfhosted","warpgate"],"campaign_type":null,"first_public_at":"2026-09-18T09:12:01+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-91163","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91163","severity":null,"published_at":"2026-11-04T16:17:54+00:00","modified_at":"2026-11-04T16:17:54+00:00","first_seen_at":"2026-11-04T16:28:15+00:00","fetched_at":"2026-11-04T16:28:15+00:00","note":null}],"documents":[{"id":68510,"url":"https://github.com/warp-tech/warpgate/commit/8426196a27c30fca521656653f9df1faf3df7523","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":68511,"url":"https://github.com/warp-tech/warpgate/releases/tag/v0.29.0","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":68512,"url":"https://github.com/warp-tech/warpgate/security/advisories/GHSA-hrfx-fm67-gv64","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-09-18T09:12:01+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}