PT-2026-43440 · Packagist · Pterodactyl Panel
Published
2026-05-26
·
Updated
2026-05-26
·
CVE-2026-35202
CVSS v4.0
2.3
Low
| Vector | AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N |
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.
Fix
Allocation of Resources Without Limits
Time Of Check To Time Of Use
Found an issue in the description? Have something to add? Feel free to write us 👾
Related Identifiers
Affected Products
Pterodactyl Panel