{"id":"CVE-2026-111999","kind":"vulnerability","aliases":["CVE-2026-111999"],"related":[],"title":"Vanus: unauthenticated event publishing into any eventbus over HTTP","description":"Vanus 0.8.0 through 0.9.0 contains a missing authentication vulnerability that allows unauthenticated remote attackers to publish events to any eventbus through the gateway CloudEvents HTTP receiver. Attackers can send forged CloudEvents to the /namespaces/{ns}/eventbus/{name}/events or legacy /gateway/{name} paths, bypassing token authentication and authPublish checks, so they are stored and delivered to subscription sinks.","summary":"Vanus 0.8.0 through 0.9.0 (the latest release) accept CloudEvents over the gateway HTTP port (8081) with no authentication. A remote attacker can publish forged events to any eventbus via /namespaces/{ns}/eventbus/{name}/events or the legacy /gateway/{name} path; they are stored and delivered to subscription sinks, so they can fire downstream triggers. No patched release exists. The same upstream report (#647) also describes a default cluster-admin token 'admin', SSRF through subscription sinks and missing authorization; these are not covered by this CVE but make default deployments riskier.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"vanus","fixed":[],"affected":">= 0.8.0, <= 0.9.0","ecosystem":"github"}],"ecosystems":[],"tags":["event-streaming","kubernetes","no-fix-available","package","self-hosted","vanus"],"not_affected_if":["gateway-not-exposed","gateway-not-reachable","managed-hosting","version-outside-0.8.0-to-0.9.0"],"how_to_check":"Run 'vsctl version' or check the image tag of the gateway/controller pods (e.g. kubectl get pods -o jsonpath for vanus images): 0.8.0 to 0.9.0 is affected. Test exposure: from outside your trust boundary, POST a CloudEvent to http://<gateway>:8081/gateway/<eventbus> without a token; if it is accepted (ACK), you are exposed. Also check whether the default user token is still 'admin'.","fix":"No fixed version is published as of 2026-10-24 (upstream issue #647 is open). Mitigate: do not expose gateway port 8081 to untrusted networks (NetworkPolicy, firewall, internal service only); put an authenticating reverse proxy in front of the CloudEvents endpoints; change the default admin token; restrict subscription sink destinations. Watch vanus-labs/vanus for a release after v0.9.0.","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:37:33+00:00","updated_at":"2026-10-24T00:23:31+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T22:37:33Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"Vanus: unauthenticated event publishing into any eventbus over HTTP","impact":"medium","summary":"Vanus versions 0.8.0 through 0.9.0 accept CloudEvents over HTTP without checking credentials. A remote attacker can publish forged events to any eventbus, and those events are stored and delivered to subscriber sinks.","category":"package","who_cares":["vanus","kubernetes","event-streaming"],"confidence":0.6,"needs_auth":"no","worst_case":"Attacker injects forged events that downstream subscribers process as trusted","analyst_note":"Fixed version and vendor advisory are not in the sources; look up the Vanus release notes or NVD entry for the patched version.","how_to_check":"Check the installed Vanus version; 0.8.0 through 0.9.0 are affected. Confirm whether the gateway HTTP port is reachable from untrusted networks.","needs_analyst":true,"not_affected_if":["version-outside-0.8.0-to-0.9.0","gateway-not-reachable"],"user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000504,"input_tokens":2977,"output_tokens":412,"severity_before":"high"},"analyst_status":"done","analyst_note":"Fixed version and vendor advisory are not in the sources; look up the Vanus release notes or NVD entry for the patched version.","search":"'-111999':12A,15A '-2026':11A,14A '/eventbus':61B,156C '/events':63B,158C '/gateway':67B,161C '/namespaces':59B,154C '0.8.0':31B,122C '0.9.0':33B,124C '647':92B '8081':44B 'accept':37B 'admin':99B,101B 'allow':131C 'also':93B 'attack':50B,134C,147C 'authent':47B,128C,166C 'author':108B 'authpublish':168C 'avail':24B 'bypass':164C 'check':169C 'cloudev':38B,144C,151C 'cluster':98B 'cluster-admin':97B 'contain':125C 'cover':112B 'cve':10A,13A,115B 'default':96B,118B 'deliv':74B,175C 'deploy':119B 'describ':94B 'downstream':82B 'event':3A,18B,54B,137C 'event-stream':17B 'eventbus':7A,57B,140C 'exist':87B 'fire':81B 'fix':23B 'forg':53B,150C 'gateway':41B,143C 'host':28B 'http':9A,42B,145C 'kubernet':20B 'latest':35B 'legaci':66B,160C 'make':117B 'miss':107B,127C 'name':62B,68B,157C,162C 'no-fix-avail':21B 'ns':60B,155C 'packag':25B 'patch':85B 'path':69B,163C 'port':43B 'publish':4A,52B,136C 'receiv':146C 'releas':36B,86B 'remot':49B,133C 'report':91B 'riskier':120B 'self':27B 'self-host':26B 'send':149C 'sink':77B,105B,178C 'ssrf':102B 'store':72B,173C 'stream':19B 'subscript':76B,104B,177C 'token':100B,165C 'trigger':83B 'unauthent':2A,132C 'upstream':90B 'vanus':1A,16A,29B,30B,121C 'via':58B 'vulner':129C","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:N/VI:H/VA:N/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-111999","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111999","severity":null,"published_at":"2026-10-18T12:17:11+00:00","modified_at":"2026-10-20T16:17:01+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-111999:649","url":null,"severity":null,"published_at":"2026-10-24T00:23:31+00:00","modified_at":"2026-10-24T00:23:31+00:00","first_seen_at":"2026-10-24T00:23:31+00:00","fetched_at":"2026-10-24T00:23:31+00:00","note":"No fix exists: issue #647 open (filed 2026-10-16, 'Fixed version: none available'), latest release v0.9.0 (2023-09), VulnCheck advisory lists no patched version. Same report also claims hardcoded default admin token 'admin', SSRF via subscription sinks, and missing authz (the CVE only covers the publish bug). No exploitation or public PoC link seen; reporter says PoC available privately. X not searched."}],"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":2579,"url":"https://www.vulncheck.com/advisories/vanus-0.8.0-through-0.9.0-missing-authentication-via-gateway-cloudevents-http-receiver","title":"VulnCheck advisory: Vanus 0.8.0-0.9.0 missing auth on gateway CloudEvents receiver","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"}