{"id":"CVE-2026-111692","kind":"vulnerability","aliases":["CVE-2026-111692"],"related":[],"title":"DataBuff ai-apm-web through 0.1.10 contains an authentication bypass vulnerability that allows unauthenticated…","description":"DataBuff ai-apm-web through 0.1.10 contains an authentication bypass vulnerability that allows unauthenticated attackers to forge admin session tokens by using the hardcoded HMAC secret in JwtTokenService. Attackers can sign a payload of admin and a future expiry with the default dev-secret to gain full administrative access to protected /webapi routes, including the Doris SQL query API.","summary":"DataBuff ai-apm-web (<= 0.1.10) signs session tokens with a public default HMAC secret. The source-tree application.yml sets apm.security.jwt.secret: dev-secret, and the code falls back to change-me-in-production when the property is unset. The Docker image config does not set it. An unauthenticated attacker who can reach port 27403 can forge an 'admin|<future-epoch>' token and get full admin on /webapi routes, including POST /webapi/api/v1/ai/doris/query (read-only SQL), AI sessions, LLM provider config and alert/webhook config. The default admin login is also admin / Databuff@123. The researcher's writeup includes the exploit steps, but the author says they were not run against a live deployment. No exploitation in the wild is known.","severity":"critical","cvss":9.8,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"databuff ai-apm-web","fixed":[],"affected":"<= 0.1.10","ecosystem":"github"}],"ecosystems":[],"tags":["ai-apm-web","auth-bypass","databuff","docker","doris","hardcoded-secret","other","self-hosted"],"not_affected_if":["custom-jwt-secret","not-exposed-to-network","not-internet-exposed","version-above-0.1.10-with-changed-secret"],"how_to_check":"Check whether the web port (default 27403) is reachable from untrusted networks. Check whether apm.security.jwt.secret or the env var APM_SECURITY_JWT_SECRET is set to a non-default value in the ai-apm-web config (deploy/images/web/application.yml or docker-compose environment). If it is unset, you are exposed. Also test whether admin / Databuff@123 still logs in. Running image: docker ps | grep ai-apm-web, with tag <= 0.1.10.","fix":"No patched release is known; v0.1.10 is the latest. Mitigate now: set a long random apm.security.jwt.secret (env APM_SECURITY_JWT_SECRET) and change apm.security.seed-password, restart ai-apm-web, and invalidate old sessions. Restrict port 27403 to a VPN or allowlist. If the secret was ever default and the port was exposed, review the Doris and LLM provider data and rotate LLM API keys. Watch databufflabs/databuff releases for a fix.","status":"open","published_at":"2026-10-16T18:17:52+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-23T22:04:59+00:00","updated_at":"2026-10-23T23:28:55+00:00","category":"other","confidence":0.8,"triage":{"at":"2026-10-23T22:04:59Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"internet","impact":"high","summary":"DataBuff ai-apm-web through version 0.1.10 hardcodes its JWT HMAC signing secret in JwtTokenService, so anyone who knows the default dev-secret can forge an admin session token. An attacker who forges such a token gets full administrative access to protected /webapi routes, including the Doris SQL query API.","category":"other","who_cares":["ai-apm-web","databuff","doris","self-hosted"],"confidence":0.6,"needs_auth":"no","worst_case":"Attacker forges admin token and runs arbitrary Doris SQL queries","analyst_note":"Confirm the patched version and whether the dev-secret default is still the shipped config; check https://nvd.nist.gov/vuln/detail/CVE-2026-111692 and the DataBuff repository for a fix.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["version-above-0.1.10-with-changed-secret","not-exposed-to-network"],"user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"critical"},"cost_usd":0.000477,"input_tokens":2797,"output_tokens":394,"severity_before":"critical"},"analyst_status":"done","analyst_note":"Confirm the patched version and whether the dev-secret default is still the shipped config; check https://nvd.nist.gov/vuln/detail/CVE-2026-111692 and the DataBuff repository for a fix.","search":"'-111692':18A,21A '-2026':17A,20A '/webapi':111B,217C '/webapi/api/v1/ai/doris/query':115B '0.1.10':7A,49B,170C '123':136B '27403':100B 'access':214C 'admin':104B,109B,130B,134B,182C,199C 'administr':213C 'ai':3A,24A,28B,46B,120B,166C 'ai-apm-web':2A,23A,27B,45B,165C 'alert/webhook':126B 'allow':14A,177C 'also':133B 'api':224C 'apm':4A,25A,29B,47B,167C 'apm.security.jwt.secret':65B 'application.yml':63B 'attack':95B,179C,193C 'auth':32B 'auth-bypass':31B 'authent':10A,173C 'author':147B 'back':73B 'bypass':11A,33B,174C 'chang':76B 'change-me-in-product':75B 'code':71B 'config':88B,124B,127B 'contain':8A,171C 'cve':16A,19A 'databuff':1A,22A,34B,44B,135B,164C 'default':56B,129B,206C 'deploy':156B 'dev':67B,208C 'dev-secret':66B,207C 'docker':35B,86B 'dori':36B,221C 'expiri':203C 'exploit':143B,158B 'fall':72B 'forg':102B,181C 'full':108B,212C 'futur':202C 'gain':211C 'get':107B 'hardcod':38B,188C 'hardcoded-secret':37B 'hmac':57B,189C 'host':43B 'imag':87B 'includ':113B,141B,219C 'jwttokenservic':192C 'known':163B 'live':155B 'llm':122B 'login':131B 'payload':197C 'port':99B 'post':114B 'product':79B 'properti':82B 'protect':216C 'provid':123B 'public':55B 'queri':223C 'reach':98B 'read':117B 'read-on':116B 'research':138B 'rout':112B,218C 'run':152B 'say':148B 'secret':39B,58B,68B,190C,209C 'self':42B 'self-host':41B 'session':51B,121B,183C 'set':64B,91B 'sign':50B,195C 'sourc':61B 'source-tre':60B 'sql':119B,222C 'step':144B 'token':52B,105B,184C 'tree':62B 'unauthent':15A,94B,178C 'unset':84B 'use':186C 'vulner':12A,175C 'web':5A,26A,30B,48B,168C 'wild':161B 'writeup':140B","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T18:17:52+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":1,"sources":[{"source":"nvd","external_id":"CVE-2026-111692","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111692","severity":null,"published_at":"2026-10-16T18:17:52+00:00","modified_at":"2026-10-16T20:17:22+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null},{"source":"analyst","external_id":"CVE-2026-111692:452","url":null,"severity":null,"published_at":"2026-10-23T23:28:55+00:00","modified_at":"2026-10-23T23:28:55+00:00","first_seen_at":"2026-10-23T23:28:55+00:00","fetched_at":"2026-10-23T23:28:55+00:00","note":"No fix found: v0.1.10 (6 Oct) is the latest release and is the affected one; no advisory from the vendor. Source: researcher writeup (hackmd), VulnCheck/CVE record, repo v0.1.10 config. Shipped config still uses a public secret. Not checked: X/HN discussion."}],"documents":[{"id":1988,"url":"https://hackmd.io/@hieuPenguinnn/databuff-default-jwt-secret-auth-bypass","title":"DataBuff pre-auth admin takeover via hardcoded default JWT secret (hieuPenguinnn)","kind":"poc","source":"analyst","text":null,"published_at":null,"relation":"poc","confidence":null,"note":null},{"id":1989,"url":"https://www.vulncheck.com/advisories/databuff-ai-apm-web-through-0.1.10-authentication-bypass-via-hardcoded-hmac-secret","title":"VulnCheck advisory CVE-2026-111692","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":1990,"url":"https://github.com/databufflabs/databuff/blob/v0.1.10/ai-apm-web/src/main/resources/application.yml","title":"databuff v0.1.10 application.yml (jwt secret dev-secret)","kind":"other","source":"analyst","text":null,"published_at":null,"relation":"describes","confidence":null,"note":null},{"id":1991,"url":"https://github.com/databufflabs/databuff/releases","title":"databuff releases (latest v0.1.10, no fix)","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"}