{"id":"CVE-2026-76078","kind":"vulnerability","aliases":["CVE-2026-76078"],"related":[],"title":"Probo: trust center visitors can sign NDAs for others","description":"Probo is a self-hostable governance, risk, and compliance (GRC) platform built for engineering and security teams. Prior to version 0.224.0, the public Trust Center GraphQL API exposes acceptElectronicSignature and recordSigningEvent, both gated only by @authentication(required: PRESENT) @sessionOnly — any self-provisioned trust center identity can call them. The underlying esign.Service.AcceptSignature and esign.Service.recordEvent build the tenant scope from the client-supplied signatureId GID (coredata.NewScopeFromObjectID(req.SignatureID)) and load the signature by that GID. At no point do they verify that the signature belongs to the caller or that the caller's email matches the signature's SignerEmail. As a result, any authenticated trust-center visitor who possesses another visitor's signature GID can: (1) complete that visitor's NDA signature — overwriting signer name/IP/UA with attacker data and setting status to Accepted, which triggers the sealing worker to generate a completion certificate; (2) inject arbitrary audit-trail events into any signature's log. Both attacks defeat the non-repudiation and integrity guarantees of the e-signature system. This issue has been patched in version 0.224.0.","summary":"Probo, a self-hosted compliance platform, lets any signed-in Trust Center visitor complete another visitor's NDA signature if they hold that signature's ID. The attacker can also add fake events to any signature's audit log, which defeats the integrity of the e-signature records.","severity":"low","cvss":3.1,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["e-signature","grc","package","probo","self-hosted"],"not_affected_if":["managed-hosting","no-trust-center","patched-version"],"how_to_check":"- Check the Probo version in use; it is affected before `0.224.0`.\n- Confirm whether the Trust Center GraphQL API is publicly reachable.","fix":"- Upgrade Probo to `0.224.0` or later.","status":"open","published_at":"2026-11-11T19:17:44+00:00","first_seen_at":"2026-11-11T19:28:48+00:00","triaged_at":"2026-11-11T19:30:43+00:00","updated_at":"2026-11-11T19:30:43+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-11T19:30:43Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Probo to `0.224.0` or later.","reach":"internet","title":"Probo: trust center visitors can sign NDAs for others","impact":"medium","summary":"Probo, a self-hosted compliance platform, lets any signed-in Trust Center visitor complete another visitor's NDA signature if they hold that signature's ID. The attacker can also add fake events to any signature's audit log, which defeats the integrity of the e-signature records.","audience":"businesses","category":"package","nicknames":[],"who_cares":["probo","self-hosted","grc","e-signature"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"attacker forges signatures and tampers with signature audit logs","analyst_note":"","how_to_check":"- Check the Probo version in use; it is affected before `0.224.0`.\n- Confirm whether the Trust Center GraphQL API is publicly reachable.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["managed-hosting","patched-version","no-trust-center"],"who_is_affected":"Teams that self-host Probo at a version before `0.224.0` and expose the public Trust Center with e-signatures enabled. The flaw needs a self-provisioned Trust Center account and a signature ID from another visitor. Teams on managed hosting or on `0.224.0` or later are not affected.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000758,"input_tokens":4921,"output_tokens":532,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-76078':12A,15A '0.224.0':97C,255C '1':192C '2':220C 'accept':209C 'acceptelectronicsignatur':105C 'add':57B 'also':56B 'anoth':41B,186C 'api':103C 'arbitrari':222C 'attack':54B,203C,233C 'audit':64B,224C 'audit-trail':223C 'authent':112C,179C 'belong':160C 'build':131C 'built':88C 'call':124C 'caller':163C,167C 'center':3A,38B,101C,121C,182C 'certif':219C 'client':138C 'client-suppli':137C 'complet':40B,193C,218C 'complianc':30B,85C 'coredata.newscopefromobjectid':142C 'cve':10A,13A 'data':204C 'defeat':67B,234C 'e':17B,73B,245C 'e-signatur':16B,72B,244C 'email':169C 'engin':90C 'esign.service.acceptsignature':128C 'esign.service.recordevent':130C 'event':59B,226C 'expos':104C 'fake':58B 'gate':109C 'generat':216C 'gid':141C,150C,190C 'govern':82C 'graphql':102C 'grc':19B,86C 'guarante':241C 'hold':48B 'host':24B,29B 'hostabl':81C 'id':52B 'ident':122C 'inject':221C 'integr':69B,240C 'issu':249C 'let':32B 'load':145C 'log':65B,231C 'match':170C 'name/ip/ua':201C 'nda':44B,197C 'ndas':7A 'non':237C 'non-repudi':236C 'other':9A 'overwrit':199C 'packag':20B 'patch':252C 'platform':31B,87C 'point':153C 'possess':185C 'present':114C 'prior':94C 'probo':1A,21B,25B,76C 'provis':119C 'public':99C 'record':75B 'recordsigningev':107C 'repudi':238C 'req.signatureid':143C 'requir':113C 'result':177C 'risk':83C 'scope':134C 'seal':213C 'secur':92C 'self':23B,28B,80C,118C 'self-host':22B,27B,79C 'self-provis':117C 'sessionon':115C 'set':206C 'sign':6A,35B 'signatur':18B,45B,50B,62B,74B,147C,159C,172C,189C,198C,229C,246C 'signatureid':140C 'signed-in':34B 'signer':200C 'signeremail':174C 'status':207C 'suppli':139C 'system':247C 'team':93C 'tenant':133C 'trail':225C 'trigger':211C 'trust':2A,37B,100C,120C,181C 'trust-cent':180C 'under':127C 'verifi':156C 'version':96C,254C 'visitor':4A,39B,42B,183C,187C,195C 'worker':214C","nicknames":[],"mitigations":[],"who_affected":"Teams that self-host Probo at a version before `0.224.0` and expose the public Trust Center with e-signatures enabled. The flaw needs a self-provisioned Trust Center account and a signature ID from another visitor. Teams on managed hosting or on `0.224.0` or later are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["esignature","grc","low","package","probo","selfhosted"],"campaign_type":null,"search_a":"'-2026':11A,14A '-76078':12A,15A 'center':3A 'cve':10A,13A 'ndas':7A 'other':9A 'probo':1A 'sign':6A 'trust':2A 'visitor':4A","search_b":"'add':57B 'also':56B 'anoth':41B 'attack':54B 'audit':64B 'center':38B 'complet':40B 'complianc':30B 'defeat':67B 'e':17B,73B 'e-signatur':16B,72B 'event':59B 'fake':58B 'grc':19B 'hold':48B 'host':24B,29B 'id':52B 'integr':69B 'let':32B 'log':65B 'nda':44B 'packag':20B 'platform':31B 'probo':21B,25B 'record':75B 'self':23B,28B 'self-host':22B,27B 'sign':35B 'signatur':18B,45B,50B,62B,74B 'signed-in':34B 'trust':37B 'visitor':39B,42B","search_c":"'0.224.0':97C,255C '1':192C '2':220C 'accept':209C 'acceptelectronicsignatur':105C 'anoth':186C 'api':103C 'arbitrari':222C 'attack':203C,233C 'audit':224C 'audit-trail':223C 'authent':112C,179C 'belong':160C 'build':131C 'built':88C 'call':124C 'caller':163C,167C 'center':101C,121C,182C 'certif':219C 'client':138C 'client-suppli':137C 'complet':193C,218C 'complianc':85C 'coredata.newscopefromobjectid':142C 'data':204C 'defeat':234C 'e':245C 'e-signatur':244C 'email':169C 'engin':90C 'esign.service.acceptsignature':128C 'esign.service.recordevent':130C 'event':226C 'expos':104C 'gate':109C 'generat':216C 'gid':141C,150C,190C 'govern':82C 'graphql':102C 'grc':86C 'guarante':241C 'hostabl':81C 'ident':122C 'inject':221C 'integr':240C 'issu':249C 'load':145C 'log':231C 'match':170C 'name/ip/ua':201C 'nda':197C 'non':237C 'non-repudi':236C 'overwrit':199C 'patch':252C 'platform':87C 'point':153C 'possess':185C 'present':114C 'prior':94C 'probo':76C 'provis':119C 'public':99C 'recordsigningev':107C 'repudi':238C 'req.signatureid':143C 'requir':113C 'result':177C 'risk':83C 'scope':134C 'seal':213C 'secur':92C 'self':80C,118C 'self-host':79C 'self-provis':117C 'sessionon':115C 'set':206C 'signatur':147C,159C,172C,189C,198C,229C,246C 'signatureid':140C 'signer':200C 'signeremail':174C 'status':207C 'suppli':139C 'system':247C 'team':93C 'tenant':133C 'trail':225C 'trigger':211C 'trust':100C,120C,181C 'trust-cent':180C 'under':127C 'verifi':156C 'version':96C,254C 'visitor':183C,187C,195C 'worker':214C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-07-09T10:14:31+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-76078","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-76078","severity":null,"published_at":"2026-11-11T19:17:44+00:00","modified_at":"2026-11-11T19:17:44+00:00","first_seen_at":"2026-11-11T19:28:48+00:00","fetched_at":"2026-11-11T19:28:48+00:00","note":null}],"documents":[{"id":128156,"url":"https://github.com/getprobo/probo/commit/eb9274f2cd7101f89c21c18f6d7a3570f95aff32","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":128157,"url":"https://github.com/getprobo/probo/commit/f20c3d73d20fcce1344ee1a44bfa6d7f8c35471f","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":128158,"url":"https://github.com/getprobo/probo/releases/tag/probod%2Fv0.224.0","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":128159,"url":"https://github.com/getprobo/probo/security/advisories/GHSA-22xj-f767-ppw6","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-09T10:14:31+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"}