All vulnerabilities

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
Weakness
Server-side request forgery (CWE-918)
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.

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