All vulnerabilities

Servers and applications

GHSA-wc7v-rjjv-9g7g

Removing a member leaves organization API keys active and preserves access

Severity
High 7.6
Published
12 Nov 2026
Last changed
12 Nov 2026
Added to UpHeron
12 Nov 2026
Fixed in
0.31.1
Weakness
Insufficient session expiration (CWE-613)
Attack
Over the network · Only under certain conditions · Needs a user account · No user action needed
Attacker can
Read data · Change data
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Sources
Project advisories (GitHub)

Description

Removing a member from an organization should terminate that member's organization-scoped API access as well as the interactive membership.

Organization-scoped API keys are attached to the global user and store their organization only as JSON metadata. Removing the user from an organization deletes the membership but neither revokes those keys nor invalidates them during authentication.

validateRequest() verifies the key, reads its old organizationId, and queries the current membership. When no membership exists, it still creates an authenticated session with that former organization ID and a fallback member role. The cookie-session branch correctly clears the active organization in the same situation.

This gives a removed member persistent access to every authentication-only route. In the current release, that includes settings.getWebServerSettings, which exposes the stored SSH private key and monitoring token, and /listen-deployment, which can stream Dokploy's local SSH private…

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