CVE-2026-76078 json
Probo: Broken access control in public e-signature API
published 4mo ago modified 14h ago also GHSA-22xj-f767-ppw6 , EUVD-2026-123667
Unreviewed: the maintainers' own advisory
Published by the maintainers on their GitHub repository getprobo/probo. GitHub has not reviewed it into the GitHub Advisory Database, so the affected packages and versions are the maintainers' word. Read the full advisory on GitHub.
- cvss
- 3.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no EPSS score yet
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- github.com/getprobo/probo@eb9274f commit
- github.com/getprobo/probo@f20c3d7 commit
- github.com/getprobo/probo#1475 pull request
- github.com/getprobo/probo/releases/tag/probod%2Fv0.224.0 release
Is CVE-2026-76078 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 3.1 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N |
Affected products
- getprobo probo
Classification
References
- github.com /getprobo/probo/pull/1475
- github.com /getprobo/probo/commit/eb9274f2cd7101f89c21c18f6d7a3570f95aff32
- github.com /getprobo/probo/commit/f20c3d73d20fcce1344ee1a44bfa6d7f8c35471f
-
github.com
/getprobo/probo/security/advisories/GHSA-22xj-f767-ppw6
advisory
- github.com /getprobo/probo/releases/tag/probod%2Fv0.224.0
Sources
- CVE List CVE-2026-76078
- NVD CVE-2026-76078
- Maintainer advisory GHSA-22xj-f767-ppw6
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of getprobo/probo published their own advisory on GitHub. Reviewed sources take precedence over it.