Servers and applications
GHSA-pfvx-m77f-6qr6
Multiple cross-organization authorization gaps from incomplete org-scope coverage: git-provider update mutations reassign another org's provider and disclose its decrypted OAuth secrets/app key, plus network sync/import over another org's SSH key and service duplicate/move across orgs
- Severity
- High 8.1
- Published
- 12 Nov 2026
- Last changed
- 12 Nov 2026
- Added to UpHeron
- 12 Nov 2026
- Fixed in
- 0.31.1
- Attack
- Over the network · Needs a user account · No user action needed
- Attacker can
- Read data · Change data
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N- Sources
- Project advisories (GitHub)
Description
The tRPC mutations github.update, gitlab.update, bitbucket.update and gitea.update are gated only by the RBAC check withPermission("gitProviders","create") and omit the per-resource organization-ownership assertion (assertGitProviderAccess) that every sibling procedure in the same routers enforces. They call updateGitProvider(input.gitProviderId, { organizationId: ctx.session.activeOrganizationId }), whose SQL is UPDATE gitProvider SET ... WHERE gitProviderId = $id with no organization constraint. An authenticated user who is owner/admin of their own organization can therefore pass another organization's gitProviderId/githubId and REASSIGN that victim git provider into the attacker's organization (and overwrite its fields).
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-pfvx-m77f-6qr6
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-pfvx-m77f-6qr6