{"id":"CVE-2026-111998","kind":"vulnerability","aliases":["CVE-2026-111998"],"related":[],"title":"Vanus 0.8.0 through 0.9.0 contains a default credentials vulnerability that allows unauthenticated remote attackers…","description":"Vanus 0.8.0 through 0.9.0 contains a default credentials vulnerability that allows unauthenticated remote attackers to gain cluster-admin access by using the hardcoded admin token. Attackers can send the fixed Bearer token to the gateway gRPC proxy port to manage namespaces, eventbuses, users, tokens, and role bindings, and read or publish events.","summary":"Vanus 0.8.0 through 0.9.0 creates a default user whose token is the literal string 'admin', bound to ClusterAdmin. Anyone who can reach the gateway gRPC port can send 'Authorization: Bearer admin' and manage namespaces, eventbuses, users, tokens and role bindings, and read or publish events. The gRPC client also allows cleartext transport. There is no fixed release: the upstream issue #647 is open and v0.9.0 is the latest release. The same issue lists related flaws: unauthenticated event publish on the gateway HTTP port 8081, SSRF through subscription sinks, and missing authorization on streaming RPCs.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"vanus","fixed":[],"affected":">= 0.8.0, <= 0.9.0","ecosystem":"vendor"}],"ecosystems":[],"tags":["default-credentials","grpc","hardcoded-token","kubernetes","package","self-hosted","vanus"],"not_affected_if":["default-config","gateway-not-exposed","not-network-reachable"],"how_to_check":"Check whether you run Vanus 0.8.0-0.9.0 (kubectl get pods -A -o jsonpath='{..image}' and look for vanus images). Then test from a host that can reach the gateway gRPC port: grpcurl -plaintext -H 'authorization: Bearer admin' <gateway>:8080 list (port is deployment-specific, check the gateway Service). If the call succeeds you are exposed. Also check which networks can reach the gateway Service and the 8081 CloudEvents port.","fix":"No patched version exists as of 2026-10-23. Mitigate: do not expose the gateway gRPC (and 8081) ports outside trusted networks, use Kubernetes NetworkPolicy or firewall to allow only known clients, and put TLS/an authenticating proxy in front. Look for a way to replace or disable the default 'admin' user and token, which I could not confirm from the sources. Watch vanus-labs/vanus#647 for a fix.","status":"open","published_at":"2026-10-18T12:17:11+00:00","first_seen_at":"2026-10-23T21:57:14+00:00","triaged_at":"2026-10-23T22:04:45+00:00","updated_at":"2026-10-23T23:27:43+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T22:04:45Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","impact":"high","summary":"Vanus versions 0.8.0 through 0.9.0 ship with a hardcoded admin Bearer token. An unauthenticated remote attacker who sends that token to the gateway gRPC port gets cluster-admin rights over namespaces, eventbuses, users, tokens and role bindings, and can read or publish events.","category":"package","who_cares":["vanus","kubernetes","self-hosted"],"confidence":0.6,"needs_auth":"no","worst_case":"Unauthenticated attacker gains cluster-admin control and reads or publishes all events","analyst_note":"Check the NVD entry and the Vanus project advisory for the fixed version and whether the hardcoded token can be changed by configuration; the sources give no fix or check command.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["default-config"],"user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000453,"input_tokens":2791,"output_tokens":348,"severity_before":"critical"},"analyst_status":"done","analyst_note":"Check the NVD entry and the Vanus project advisory for the fixed version and whether the hardcoded token can be changed by configuration; the sources give no fix or check command.","search":"'-111998':17A,20A '-2026':16A,19A '0.8.0':2A,36B,130C '0.9.0':4A,38B,132C '647':95B '8081':118B 'access':148C 'admin':49B,65B,147C,153C 'allow':11A,84B,139C 'also':83B 'anyon':53B 'attack':14A,142C,155C 'author':63B,125B 'bearer':64B,160C 'bind':74B,176C 'bound':50B 'cleartext':85B 'client':82B 'cluster':146C 'cluster-admin':145C 'clusteradmin':52B 'contain':5A,133C 'creat':39B 'credenti':8A,24B,136C 'cve':15A,18A 'default':7A,23B,41B,135C 'default-credenti':22B 'event':79B,111B,181C 'eventbus':69B,171C 'fix':90B,159C 'flaw':109B 'gain':144C 'gateway':58B,115B,164C 'grpc':25B,59B,81B,165C 'hardcod':27B,152C 'hardcoded-token':26B 'host':33B 'http':116B 'issu':94B,106B 'kubernet':29B 'latest':102B 'list':107B 'liter':47B 'manag':67B,169C 'miss':124B 'namespac':68B,170C 'open':97B 'packag':30B 'port':60B,117B,167C 'proxi':166C 'publish':78B,112B,180C 'reach':56B 'read':76B,178C 'relat':108B 'releas':91B,103B 'remot':13A,141C 'role':73B,175C 'rpcs':128B 'self':32B 'self-host':31B 'send':62B,157C 'sink':122B 'ssrf':119B 'stream':127B 'string':48B 'subscript':121B 'token':28B,44B,71B,154C,161C,173C 'transport':86B 'unauthent':12A,110B,140C 'upstream':93B 'use':150C 'user':42B,70B,172C 'v0.9.0':99B 'vanus':1A,21A,34B,35B,129C 'vulner':9A,137C 'whose':43B","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T12:17:11+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/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-111998","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111998","severity":null,"published_at":"2026-10-18T12:17:11+00:00","modified_at":"2026-10-19T21:14:14+00:00","first_seen_at":"2026-10-23T21:57:14+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-111998:445","url":null,"severity":null,"published_at":"2026-10-23T23:27:43+00:00","modified_at":"2026-10-23T23:27:43+00:00","first_seen_at":"2026-10-23T23:27:43+00:00","fetched_at":"2026-10-23T23:27:43+00:00","note":"Read VulnCheck advisory and upstream issue vanus-labs/vanus#647 (open, reporter says no fix; latest release v0.9.0, 2023-09). No patched version exists, no public PoC, no exploitation reported; token is the literal string 'admin' in source. Sibling CVE-2026-112000 (missing authz in gateway streaming RPCs) is the same product and issue."}],"documents":[{"id":1975,"url":"https://github.com/vanus-labs/vanus/issues/647","title":"Vanus #647 [Security] hardcoded token, unauth publish, SSRF, missing authorization (reporter)","kind":"issue","source":"analyst","text":null,"published_at":null,"relation":"describes","confidence":null,"note":null},{"id":1978,"url":"https://www.vulncheck.com/advisories/vanus-0.8.0-through-0.9.0-default-admin-credentials-via-gateway","title":"VulnCheck advisory: Vanus default admin credentials via gateway","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":1980,"url":"https://github.com/vanus-labs/vanus/releases","title":"Vanus releases (latest v0.9.0, 2023-09)","kind":"release","source":"analyst","text":null,"published_at":null,"relation":"mentions","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}