{"id":"CVE-2026-68935","kind":"vulnerability","aliases":["CVE-2026-68935"],"related":[],"title":"Chartbrew: API connections can reach internal services through a private-host override","description":"Chartbrew is an open-source web application for creating charts from databases and APIs. In versions 4.8.5 through 5.2.2, API connection creation and update operations accept the internal  allowPrivateHost  field from user input. An authenticated user with permission to manage API connections can enable this field to bypass private and reserved-network destination restrictions. An upgrade migration also enables the override on pre-existing API connections. The per-connection setting takes precedence over  CB_ALLOW_PRIVATE_NETWORK_CALLS , so disabling that instance option does not protect connections with the override enabled. Successful exploitation allows requests to internal HTTP services reachable from the Chartbrew server, potentially disclosing information or triggering unauthorized actions depending on the target service. Recognized cloud metadata endpoints remain separately blocked. This issue is fixed in version 5.2.3.","summary":"Chartbrew, a self-hosted charting app, lets an authenticated user set an internal allowPrivateHost flag on API connections, which an upgrade migration also turns on for existing connections. Successful exploitation lets requests reach internal HTTP services reachable from the Chartbrew server, possibly disclosing data or triggering unauthorized actions.","severity":"critical","cvss":9.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["chartbrew","internal-network","package","self-hosted"],"not_affected_if":["auth-required","patched-version"],"how_to_check":"- Check the Chartbrew version in the deployed package.json or release tag: versions `4.8.5` through `5.2.2` are in the affected range.\n- Look for API connections with the allowPrivateHost field enabled in the database.\n- Confirm whether `CB_ALLOW_PRIVATE_NETWORK_CALLS` is set, since the per-connection override takes precedence over it.","fix":"- Chartbrew: upgrade to `5.2.3`.","status":"open","published_at":"2026-11-06T22:17:59+00:00","first_seen_at":"2026-11-06T22:44:32+00:00","triaged_at":"2026-11-06T22:44:43+00:00","updated_at":"2026-11-06T22:44:43+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-06T22:44:43Z","model":"claude-haiku-5-5","output":{"fix":"- Chartbrew: upgrade to `5.2.3`.","reach":"internet","title":"Chartbrew: API connections can reach internal services through a private-host override","impact":"medium","summary":"Chartbrew, a self-hosted charting app, lets an authenticated user set an internal allowPrivateHost flag on API connections, which an upgrade migration also turns on for existing connections. Successful exploitation lets requests reach internal HTTP services reachable from the Chartbrew server, possibly disclosing data or triggering unauthorized actions.","audience":"businesses","category":"package","nicknames":[],"who_cares":["chartbrew","self-hosted","internal-network"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker reaches internal HTTP services from the server, possibly exposing data","analyst_note":"","how_to_check":"- Check the Chartbrew version in the deployed package.json or release tag: versions `4.8.5` through `5.2.2` are in the affected range.\n- Look for API connections with the allowPrivateHost field enabled in the database.\n- Confirm whether `CB_ALLOW_PRIVATE_NETWORK_CALLS` is set, since the per-connection override takes precedence over it.","plain_action":"","needs_analyst":false,"not_affected_if":["patched-version","auth-required"],"who_is_affected":"Teams running self-hosted Chartbrew versions 4.8.5 through 5.2.2 where users can create or edit API connections. The upgrade migration enables the override on existing connections, so disabling the instance-wide setting does not protect them. Instances on 5.2.3 or later, or without authenticated users who can manage API connections, are less exposed.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"critical"},"cost_usd":0.000761,"input_tokens":4446,"output_tokens":633,"severity_before":"critical"},"analyst_status":null,"analyst_note":null,"search":"'-2026':15A,18A '-68935':16A,19A '4.8.5':94C '5.2.2':96C '5.2.3':210C 'accept':103C 'action':76B,191C 'allow':155C,174C 'allowprivatehost':42B,106C 'also':51B,136C 'api':2A,45B,91C,97C,118C,144C 'app':34B 'applic':84C 'authent':37B,112C 'block':203C 'bypass':125C 'call':158C 'cb':154C 'chart':33B,87C 'chartbrew':1A,20B,28B,68B,77C,183C 'cloud':198C 'connect':3A,46B,56B,98C,119C,145C,149C,167C 'creat':86C 'creation':99C 'cve':14A,17A 'data':72B 'databas':89C 'depend':192C 'destin':131C 'disabl':160C 'disclos':71B,186C 'enabl':121C,137C,171C 'endpoint':200C 'exist':55B,143C 'exploit':58B,173C 'field':107C,123C 'fix':207C 'flag':43B 'host':12A,27B,32B 'http':63B,178C 'inform':187C 'input':110C 'instanc':162C 'intern':6A,22B,41B,62B,105C,177C 'internal-network':21B 'issu':205C 'let':35B,59B 'manag':117C 'metadata':199C 'migrat':50B,135C 'network':23B,130C,157C 'open':81C 'open-sourc':80C 'oper':102C 'option':163C 'overrid':13A,139C,170C 'packag':24B 'per':148C 'per-connect':147C 'permiss':115C 'possibl':70B 'potenti':185C 'pre':142C 'pre-exist':141C 'preced':152C 'privat':11A,126C,156C 'private-host':10A 'protect':166C 'reach':5A,61B 'reachabl':65B,180C 'recogn':197C 'remain':201C 'request':60B,175C 'reserv':129C 'reserved-network':128C 'restrict':132C 'self':26B,31B 'self-host':25B,30B 'separ':202C 'server':69B,184C 'servic':7A,64B,179C,196C 'set':39B,150C 'sourc':82C 'success':57B,172C 'take':151C 'target':195C 'trigger':74B,189C 'turn':52B 'unauthor':75B,190C 'updat':101C 'upgrad':49B,134C 'user':38B,109C,113C 'version':93C,209C 'web':83C","nicknames":[],"mitigations":[],"who_affected":"Teams running self-hosted Chartbrew versions 4.8.5 through 5.2.2 where users can create or edit API connections. The upgrade migration enables the override on existing connections, so disabling the instance-wide setting does not protect them. Instances on 5.2.3 or later, or without authenticated users who can manage API connections, are less exposed.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["chartbrew","critical","internalnetwork","package","selfhosted"],"campaign_type":null,"search_a":"'-2026':15A,18A '-68935':16A,19A 'api':2A 'chartbrew':1A 'connect':3A 'cve':14A,17A 'host':12A 'intern':6A 'overrid':13A 'privat':11A 'private-host':10A 'reach':5A 'servic':7A","search_b":"'action':76B 'allowprivatehost':42B 'also':51B 'api':45B 'app':34B 'authent':37B 'chart':33B 'chartbrew':20B,28B,68B 'connect':46B,56B 'data':72B 'disclos':71B 'exist':55B 'exploit':58B 'flag':43B 'host':27B,32B 'http':63B 'intern':22B,41B,62B 'internal-network':21B 'let':35B,59B 'migrat':50B 'network':23B 'packag':24B 'possibl':70B 'reach':61B 'reachabl':65B 'request':60B 'self':26B,31B 'self-host':25B,30B 'server':69B 'servic':64B 'set':39B 'success':57B 'trigger':74B 'turn':52B 'unauthor':75B 'upgrad':49B 'user':38B","search_c":"'4.8.5':94C '5.2.2':96C '5.2.3':210C 'accept':103C 'action':191C 'allow':155C,174C 'allowprivatehost':106C 'also':136C 'api':91C,97C,118C,144C 'applic':84C 'authent':112C 'block':203C 'bypass':125C 'call':158C 'cb':154C 'chart':87C 'chartbrew':77C,183C 'cloud':198C 'connect':98C,119C,145C,149C,167C 'creat':86C 'creation':99C 'databas':89C 'depend':192C 'destin':131C 'disabl':160C 'disclos':186C 'enabl':121C,137C,171C 'endpoint':200C 'exist':143C 'exploit':173C 'field':107C,123C 'fix':207C 'http':178C 'inform':187C 'input':110C 'instanc':162C 'intern':105C,177C 'issu':205C 'manag':117C 'metadata':199C 'migrat':135C 'network':130C,157C 'open':81C 'open-sourc':80C 'oper':102C 'option':163C 'overrid':139C,170C 'per':148C 'per-connect':147C 'permiss':115C 'potenti':185C 'pre':142C 'pre-exist':141C 'preced':152C 'privat':126C,156C 'protect':166C 'reachabl':180C 'recogn':197C 'remain':201C 'request':175C 'reserv':129C 'reserved-network':128C 'restrict':132C 'separ':202C 'server':184C 'servic':179C,196C 'set':150C 'sourc':82C 'success':172C 'take':151C 'target':195C 'trigger':189C 'unauthor':190C 'updat':101C 'upgrad':134C 'user':109C,113C 'version':93C,209C 'web':83C","first_public_at":"2026-09-20T02:47:35+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-68935","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68935","severity":null,"published_at":"2026-11-06T22:17:59+00:00","modified_at":"2026-11-06T22:17:59+00:00","first_seen_at":"2026-11-06T22:44:32+00:00","fetched_at":"2026-11-06T22:44:32+00:00","note":null}],"documents":[{"id":90785,"url":"https://github.com/chartbrew/chartbrew/commit/78f49f4fc2781dc3f33f102b1daeddf22225bce4","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":90344,"url":"https://github.com/chartbrew/chartbrew/releases/tag/v5.2.3","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":90787,"url":"https://github.com/chartbrew/chartbrew/security/advisories/GHSA-4q3v-5r7x-58q2","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-09-20T02:47:35+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}