GitHub Advisoryadvisory · Packagist

GHSA-fgmm-w5cx-vrfw Pterodactyl has a database resource limit bypass via race condition in Client API

LOW Published 2026-05-26 Modified 2026-06-09 Official page ↗
Aliases
CVE-2026-35202
Ecosystem
Packagist
Packages
pterodactyl/panel
Severity
Low
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Weaknesses
CWE-367, CWE-770
Reviewed
2026-05-26

Affected packages

• Packagist pterodactyl/panel: < 1.12.3 → fixed in 1.12.3

Description

Summary The Pterodactyl Client API has a logic flaw that lets users bypass their assigned limits for database allocations. This happens because the database locking mechanism used in the controllers is totally broken and doesn't actually lock anything. Details Inside `DatabaseController.php`, the code tries to prevent multiple databases from being created at once by calling `$server->databases()->lockForUpdate()`. In Laravel, this just configures a query builder but never actually sends a command to the database because it’s missing a terminal method like `count()` or `get()`. It’s basically a no-op that does nothing. Since there’s no real lock, multiple requests hitting the endpoint at the exact same time will all see that the database count is under the limit. They all move forward to the `DeployServerDatabaseService` and successfully create extra resources on the physical host. Impact Users are able to create more databases than they are supposed to, potentially also breaking the web interface.

Related

Alias · CVE (1)

  • CVE-2026-35202 Pterodactyl is a free, open-source game server management panel. vulnerability

Weakness · CWE (2)

  • CWE-367 Time-of-check Time-of-use (TOCTOU) Race Condition weakness
  • CWE-770 Allocation of Resources Without Limits or Throttling weakness

References