{"id":"CVE-2026-63505","kind":"vulnerability","aliases":["CVE-2026-63505"],"related":[],"title":"Probo: authenticated tenants can read other organizations' risk records","description":"Probo is a self-hostable governance, risk, and compliance (GRC) platform built for engineering and security teams. Prior to version 0.223.1, Probo's console GraphQL API is a multi-tenant GRC platform where all data is scoped to an organization. A Finding can reference a Risk via finding.riskId. That reference is stored without validating that the risk belongs to the caller's organization, and the Finding.risk field resolver authorizes the finding (caller's org) instead of the risk, then loads the risk with a tenant scope derived from the risk's own global ID. As a result, an authenticated member of organization A can attach an arbitrary organization B risk GID to a finding they own and then read organization B's Risk (name, description, treatment, category, severity, owner) — with no membership in B. The stored cross-tenant reference also blocks B from deleting its own risk (ON DELETE RESTRICT), a cross-tenant integrity/DoS. This issue has been patched in version 0.223.1.","summary":"Probo is a self-hostable GRC platform where a finding can reference a risk from a different organization without a tenant check. An authenticated member of one organization can read another organization's risk name, description, treatment, category, severity and owner, and can block that organization from deleting its own risk.","severity":"medium","cvss":4.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["grc","multi-tenant","package","probo","self-hosted"],"not_affected_if":["single-organization","version-0.223.1-or-later"],"how_to_check":"- Check the installed Probo version; affected versions are those before `0.223.1`.\n- Confirm whether your Probo instance is reachable by users from more than one organization.","fix":"- Probo: upgrade to `0.223.1` or later.","status":"open","published_at":"2026-11-11T19:17:43+00:00","first_seen_at":"2026-11-11T19:28:47+00:00","triaged_at":"2026-11-11T19:30:35+00:00","updated_at":"2026-11-11T19:30:35+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-11T19:30:35Z","model":"claude-haiku-5-5","output":{"fix":"- Probo: upgrade to `0.223.1` or later.","reach":"network","title":"Probo: authenticated tenants can read other organizations' risk records","impact":"medium","summary":"Probo is a self-hostable GRC platform where a finding can reference a risk from a different organization without a tenant check. An authenticated member of one organization can read another organization's risk name, description, treatment, category, severity and owner, and can block that organization from deleting its own risk.","audience":"businesses","category":"package","nicknames":[],"who_cares":["probo","self-hosted","grc","multi-tenant"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"cross-tenant risk data readable and deletion of other tenants' risks blocked","analyst_note":"","how_to_check":"- Check the installed Probo version; affected versions are those before `0.223.1`.\n- Confirm whether your Probo instance is reachable by users from more than one organization.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["single-organization","version-0.223.1-or-later"],"who_is_affected":"Teams that self-host Probo with more than one organization, or where users in one organization can sign in and create findings. Single-organization deployments with only trusted members have a much smaller exposure. Hosted or single-tenant use with no other organizations present is less exposed.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000735,"input_tokens":4819,"output_tokens":506,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-63505':12A,15A '0.223.1':98C,242C 'also':219C 'anoth':56B 'api':103C 'arbitrari':185C 'attach':183C 'authent':2A,49B,177C 'author':147C 'b':187C,199C,212C,221C 'belong':136C 'block':69B,220C 'built':89C 'caller':139C,150C 'categori':63B,205C 'check':47B 'complianc':86C 'consol':101C 'cross':216C,232C 'cross-ten':215C,231C 'cve':10A,13A 'data':113C 'delet':73B,223C,228C 'deriv':165C 'descript':61B,203C 'differ':42B 'engin':91C 'field':145C 'find':35B,120C,149C,192C 'finding.risk':144C 'finding.riskid':126C 'gid':189C 'global':171C 'govern':83C 'graphql':102C 'grc':16B,31B,87C,109C 'host':24B 'hostabl':30B,82C 'id':172C 'instead':153C 'integrity/dos':234C 'issu':236C 'load':158C 'member':50B,178C 'membership':210C 'multi':18B,107C 'multi-ten':17B,106C 'name':60B,202C 'one':52B 'org':152C 'organ':7A,43B,53B,57B,71B,118C,141C,180C,186C,198C 'owner':66B,207C 'packag':20B 'patch':239C 'platform':32B,88C,110C 'prior':95C 'probo':1A,21B,25B,77C,99C 'read':5A,55B,197C 'record':9A 'refer':37B,122C,128C,218C 'resolv':146C 'restrict':229C 'result':175C 'risk':8A,39B,59B,76B,84C,124C,135C,156C,160C,168C,188C,201C,226C 'scope':115C,164C 'secur':93C 'self':23B,29B,81C 'self-host':22B,28B,80C 'sever':64B,206C 'store':130C,214C 'team':94C 'tenant':3A,19B,46B,108C,163C,217C,233C 'treatment':62B,204C 'valid':132C 'version':97C,241C 'via':125C 'without':44B,131C","nicknames":[],"mitigations":[],"who_affected":"Teams that self-host Probo with more than one organization, or where users in one organization can sign in and create findings. Single-organization deployments with only trusted members have a much smaller exposure. Hosted or single-tenant use with no other organizations present is less exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["grc","medium","multitenant","package","probo","selfhosted"],"campaign_type":null,"search_a":"'-2026':11A,14A '-63505':12A,15A 'authent':2A 'cve':10A,13A 'organ':7A 'probo':1A 'read':5A 'record':9A 'risk':8A 'tenant':3A","search_b":"'anoth':56B 'authent':49B 'block':69B 'categori':63B 'check':47B 'delet':73B 'descript':61B 'differ':42B 'find':35B 'grc':16B,31B 'host':24B 'hostabl':30B 'member':50B 'multi':18B 'multi-ten':17B 'name':60B 'one':52B 'organ':43B,53B,57B,71B 'owner':66B 'packag':20B 'platform':32B 'probo':21B,25B 'read':55B 'refer':37B 'risk':39B,59B,76B 'self':23B,29B 'self-host':22B,28B 'sever':64B 'tenant':19B,46B 'treatment':62B 'without':44B","search_c":"'0.223.1':98C,242C 'also':219C 'api':103C 'arbitrari':185C 'attach':183C 'authent':177C 'author':147C 'b':187C,199C,212C,221C 'belong':136C 'block':220C 'built':89C 'caller':139C,150C 'categori':205C 'complianc':86C 'consol':101C 'cross':216C,232C 'cross-ten':215C,231C 'data':113C 'delet':223C,228C 'deriv':165C 'descript':203C 'engin':91C 'field':145C 'find':120C,149C,192C 'finding.risk':144C 'finding.riskid':126C 'gid':189C 'global':171C 'govern':83C 'graphql':102C 'grc':87C,109C 'hostabl':82C 'id':172C 'instead':153C 'integrity/dos':234C 'issu':236C 'load':158C 'member':178C 'membership':210C 'multi':107C 'multi-ten':106C 'name':202C 'org':152C 'organ':118C,141C,180C,186C,198C 'owner':207C 'patch':239C 'platform':88C,110C 'prior':95C 'probo':77C,99C 'read':197C 'refer':122C,128C,218C 'resolv':146C 'restrict':229C 'result':175C 'risk':84C,124C,135C,156C,160C,168C,188C,201C,226C 'scope':115C,164C 'secur':93C 'self':81C 'self-host':80C 'sever':206C 'store':130C,214C 'team':94C 'tenant':108C,163C,217C,233C 'treatment':204C 'valid':132C 'version':97C,241C 'via':125C 'without':131C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-07-03T10:27:03+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63505","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63505","severity":null,"published_at":"2026-11-11T19:17:43+00:00","modified_at":"2026-11-11T19:17:43+00:00","first_seen_at":"2026-11-11T19:28:47+00:00","fetched_at":"2026-11-11T19:28:47+00:00","note":null}],"documents":[{"id":128138,"url":"https://github.com/getprobo/probo/commit/d03f6077ddf85ad448cbcb2145341d9543fc4711","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":128139,"url":"https://github.com/getprobo/probo/releases/tag/probod%2Fv0.223.1","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":128140,"url":"https://github.com/getprobo/probo/security/advisories/GHSA-c74x-79w6-63jh","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-03T10:27:03+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}