{"id":"CVE-2026-111614","kind":"vulnerability","aliases":["CVE-2026-111614"],"related":[],"title":"DataCap: authenticated users can read other users' datasource credentials by id","description":"DataCap through 2025.1.1 contains an insecure direct object reference vulnerability in BaseController.getInfoForPath that allows authenticated users to read other users' datasources, snippets and dashboards by numeric id. Low-privileged attackers can enumerate auto-increment ids on the source, snippet and dashboard endpoints to retrieve serialized datasource host, port, username and cleartext passwords.","summary":"Self-hosted DataCap (devlive-community, also MetaForge) 2025.1.1 and earlier: any logged-in user can read other users' datasources, snippets and dashboards by numeric id through the inherited GET /{id} handler (BaseController.getInfoForPath), exposing datasource host, port, username and cleartext password. Exposed: multi-user installs, especially with self-registration on. Single-user or fully trusted-user installs can mostly skip it. No fix found; no known exploitation or public PoC.","severity":"high","cvss":7.1,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"DataCap","fixed":[],"affected":"<= 2025.1.1","ecosystem":"vendor"}],"ecosystems":[],"tags":["auth-required","credentials","datacap","idor","java","package","self-hosted"],"not_affected_if":["auth-required","registration-disabled","single-user"],"how_to_check":"Check your DataCap version: 2025.1.1 or earlier is affected. Test: logged in as a non-owner user, GET /api/v2/source/<id> (also /api/v1/snippet/<id>, /api/v1/dashboard/<id>) for an id you do not own; if it returns another user's record, you are exposed.","fix":"No fixed version known as of 2026-10-25 (latest release found is 2025.1.1, which is affected). Interim: restrict DataCap to trusted users, disable self-registration (datacap.registration.enable=false), block GET on /api/v*/source/{id}, /snippet/{id}, /dashboard/{id} at a reverse proxy, and rotate the passwords of datasources stored in DataCap if untrusted users have had accounts.","status":"open","published_at":"2026-10-16T18:17:40+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-25T03:36:38+00:00","updated_at":"2026-10-25T03:46:59+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:36:38Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"DataCap: authenticated users can read other users' datasource credentials by id","impact":"high","summary":"DataCap through 2025.1.1 has an insecure direct object reference in BaseController.getInfoForPath, so any logged-in user can request other users' datasources, snippets and dashboards by numeric id. An attacker can enumerate auto-increment ids to retrieve datasource hosts, ports, usernames and cleartext passwords.","category":"package","nicknames":[],"who_cares":["datacap","self-hosted"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker reads cleartext database passwords belonging to other users","analyst_note":"Check the NVD entry and DataCap release notes for the fixed version and whether the endpoints are reachable only by authenticated users.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["auth-required"],"who_is_affected":"DataCap installations through 2025.1.1 where more than one user has an account. Exposure comes from the source, snippet and dashboard endpoints being reachable by any authenticated low-privileged user; a single-user deployment has no other users to read from.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000561,"input_tokens":3357,"output_tokens":450,"severity_before":"high"},"analyst_status":"done","analyst_note":"Check the NVD entry and DataCap release notes for the fixed version and whether the endpoints are reachable only by authenticated users.","search":"'-111614':14A,17A '-2026':13A,16A '2025.1.1':39B,108C 'allow':119C 'also':37B 'attack':136C 'auth':20B 'auth-requir':19B 'authent':2A,120C 'auto':140C 'auto-incr':139C 'basecontroller.getinfoforpath':64B,117C 'cleartext':71B,158C 'communiti':36B 'contain':109C 'credenti':9A,22B 'cve':12A,15A 'dashboard':54B,129C,148C 'datacap':1A,18A,23B,33B,106C 'datasourc':8A,51B,66B,126C,153C 'devliv':35B 'devlive-commun':34B 'direct':112C 'earlier':41B 'endpoint':149C 'enumer':138C 'especi':78B 'exploit':102B 'expos':65B,73B 'fix':98B 'found':99B 'fulli':88B 'get':61B 'handler':63B 'host':29B,32B,67B,154C 'id':11A,57B,62B,132C,142C 'idor':24B 'increment':141C 'inherit':60B 'insecur':111C 'instal':77B,92B 'java':25B 'known':101B 'log':44B 'logged-in':43B 'low':134C 'low-privileg':133C 'metaforg':38B 'most':94B 'multi':75B 'multi-us':74B 'numer':56B,131C 'object':113C 'packag':26B 'password':72B,159C 'poc':105B 'port':68B,155C 'privileg':135C 'public':104B 'read':5A,48B,123C 'refer':114C 'registr':82B 'requir':21B 'retriev':151C 'self':28B,31B,81B 'self-host':27B,30B 'self-registr':80B 'serial':152C 'singl':85B 'single-us':84B 'skip':95B 'snippet':52B,127C,146C 'sourc':145C 'trust':90B 'trusted-us':89B 'user':3A,7A,46B,50B,76B,86B,91B,121C,125C 'usernam':69B,156C 'vulner':115C","nicknames":[],"mitigations":[],"who_affected":"DataCap installations through 2025.1.1 where more than one user has an account. Exposure comes from the source, snippet and dashboard endpoints being reachable by any authenticated low-privileged user; a single-user deployment has no other users to read from.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T18:17:40+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/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-111614","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-111614","severity":null,"published_at":"2026-10-16T18:17:40+00:00","modified_at":"2026-10-21T21:17:52+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-111614:791","url":null,"severity":null,"published_at":"2026-10-25T03:46:59+00:00","modified_at":"2026-10-25T03:46:59+00:00","first_seen_at":"2026-10-25T03:46:59+00:00","fetched_at":"2026-10-25T03:46:59+00:00","note":"Read NVD, VulnCheck CNA advisory and researcher writeup (static analysis only, no runtime test, no PoC). No fixed release found: latest listed release is 2025.1.1 (affected); no vendor advisory seen. Nothing marked verified (no vendor-own text)."}],"documents":[{"id":3341,"url":"https://www.vulncheck.com/advisories/datacap-through-2025.1.1-idor-via-basecontroller-getinfoforpath-exposes-credentials","title":"VulnCheck: DataCap through 2025.1.1 IDOR via BaseController.getInfoForPath","kind":"advisory","source":"analyst","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":null},{"id":3342,"url":"https://hackmd.io/@hieuPenguinnn/metaforge-datacap-source-getbyid-cross-user-idor","title":"hieuPenguinnn: DataCap cross-user datasource disclosure via get-by-id (static analysis, not runtime-tested)","kind":"issue","source":"analyst","text":null,"published_at":null,"relation":"describes","confidence":null,"note":null},{"id":3343,"url":"https://github.com/devlive-community/MetaForge/releases","title":"DataCap releases (latest listed: 2025.1.1)","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"}