All vulnerabilities

Servers and applications

GHSA-66r5-5m5f-57vg

Cross-organization Git-provider secret disclosure (IDOR) via {github,gitlab,bitbucket,gitea}.one tRPC handlers

Severity
High 7.7
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)Missing authorization (CWE-862)
Attack
Over the network · Needs a user account · No user action needed
Attacker can
Read data
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Sources
Project advisories (GitHub)

Description

The Git-provider tRPC routers (github.ts, gitlab.ts, bitbucket.ts, gitea.ts) each expose a one query (and getRepositories/getBranches/testConnection) that loads a provider by a bare ID through protectedProcedure, which performs authentication ONLY and does NOT enforce organization scoping. The handler returns the full provider row including secrets: GitHub App private key, client secret, webhook secret; GitLab/Gitea OAuth secret + access/refresh tokens; Bitbucket API token.

Any authenticated user — including one who self-registers and creates their own organization (organization.create is protectedProcedure, available to every authenticated user, making the caller an owner) — can pass another organization's provider ID and read that organization's Git-provider credentials. This crosses the tenant trust boundary and yields the secrets needed to clone/modify the victim org's source repositories (e.g. minting GitHub App installation tokens from the leaked private key).

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