mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-07-22 06:15:24 +02:00
The /api/providers/github/setup callback performed privileged writes (persisting App client_secret/webhook_secret/private_key, re-pointing installations) with no session check, deriving the write target (organizationId/userId on gh_init, githubId on gh_setup) from the attacker-controlled state parameter. An unauthenticated request, or a member with no gitProviders permission, could plant or re-point a provider in any organization. Require a valid session, gate on the gitProviders permission (same guard the tRPC github router uses), derive the create target from the session, and verify the gh_setup provider belongs to the caller's organization.