All vulnerabilities

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
Weakness
Authorization bypass through a user-controlled key (IDOR) (CWE-639)
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).

From Dokploy/dokploy's security advisory. Shortened; the full text is there.

Affected software

SoftwareAffected versions
DokployServers and applications · github:dokploy/dokploy
  • Every version before 0.31.1

References