Summary
CVE-2026-72871 is a Missing Authentication for Critical Function (CWE-306) vulnerability in Dokploy, a self-hostable Platform-as-a-Service. An unauthenticated GitHub App setup callback endpoint trusts organization and user identifiers supplied in the request, letting a remote attacker inject a malicious GitHub App provider into another organization. It affects Dokploy versions prior to 0.29.13 and is rated High severity (CVSS 7.5).
Technical details
- Root cause: The
/api/providers/github/setuproute operates outside the application’s authentication layer, performing no session validation, no CSRF check, and no verification that theorganizationIdanduserIdvalues (taken from the request/state parameter) belong to the caller. - Trigger conditions: An attacker sends a crafted request to the GitHub App setup callback endpoint with attacker-chosen
organizationIdanduserIdvalues; no authentication or user interaction is required. - Attack vector: Network — the endpoint is remotely reachable without credentials.
- Impact: An attacker can insert a GitHub App provider containing
client_secret,webhook_secret, and PEM private key material into another organization. This can enable deployment from attacker-controlled repositories and triggering of deployments via webhook secrets, with cross-tenant risk in multi-tenant deployments. Impact is to integrity (CVSS C:N/I:H/A:N).
Affected software
- Dokploy versions prior to 0.29.13
Severity
- CVSS v3.1 base score: 7.5 (High)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Mitigation and recommended actions
- Immediate: Upgrade to Dokploy 0.29.13 or later, which fixes the issue.
- If no patch: Restrict network access to the Dokploy instance and its provider setup endpoints (e.g., place the management interface behind a VPN or IP allowlist), and review configured GitHub App providers for unexpected or unauthorized entries.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Page title:
Dokploy - Raw response body:
id="login-form",Enter your email and password to sign in,Sign in with Passkey - JavaScript objects present once the page runs:
/docker-container-terminal,/docker-container-logs

