Servers and applications
GHSA-j7vw-q729-gm8m
Authenticated Server-Side Request Forgery in Dokploy via the AI provider `getModels` endpoint
- Severity
- High 7.7
- 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
- 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 ai.getModels tRPC query accepts a fully user-controlled apiUrl (z.string().min(1), with no URL or host validation) and performs a server-side fetch(\${apiUrl}/models) from the Dokploy control-plane host, returning content parsed from the response back to the caller. The endpoint is a protectedProcedure — reachable by any authenticated user, including a base-tier organization member — and there is no SSRF protection anywhere in the codebase. A low-privilege user can therefore make the server issue arbitrary outbound HTTP(S) GET requests to internal-only hosts, cloud metadata services, and other resources the attacker cannot reach directly, and read response content back.
This was confirmed live: a base-tier organization member queried ai.getModels with apiUrl pointing at an internal-only service on the host's Docker network (not reachable from outside the host), and the Dokploy server fetched it and returned the service's payload to the member.
Affected software
| Software | Affected versions |
|---|---|
DokployServers and applications · github:dokploy/dokploy |
|
References
- GitHub Advisory Database https://github.com/advisories/GHSA-j7vw-q729-gm8m
- github.com https://github.com/Dokploy/dokploy/security/advisories/GHSA-j7vw-q729-gm8m