CVE-2026-54593 Pterodactyl's improper JWT scoping allows subuser to upload files when not explicitly granted `file.create` permissions
Authenticated subusers can bypass file creation restrictions and upload arbitrary files by reusing JWTs issued for lower-privilege operations like WebSocket connections.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-54593?
CVE-2026-54593 is a high-severity missing authorization vulnerability in pterodactyl panel, published on 28 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Official description
Pterodactyl is a free, open-source game server management panel. Prior to Panel version 1.12.3 and Wings version 1.12.2, the Wings /upload/file endpoint accepted any valid panel-signed JWT that contained server_uuid, user_uuid, and unique_id claims without checking the token's intended purpose; because the Panel issues JWTs carrying those same claims for lower-privilege operations such as WebSocket authentication and file-download links, an authenticated subuser could reuse one of those tokens (for example a WebSocket token obtained with only the websocket.connect permission) by replaying it against /upload/file to write arbitrary files to the same server, despite never being granted the file.create permission. This issue is fixed in Panel version 1.12.3 and Wings version 1.12.2.
Which versions are affected by CVE-2026-54593?
5 open source packages ship an affected version, including pterodactyl/panel and github.com/pterodactyl/wings.
| Package | Affected | Fixed in |
|---|---|---|
pterodactyl/panel Packagist | All versions | 1.12.3 |
pterodactyl/panel Packagist | All versions | 1.12.3 |
github.com/pterodactyl/wings Go | All versions | 1.12.2 |
github.com/pterodactyl/wings Go | All versions | 1.12.2 |
github.com/pterodactyl/wings Go | All versions | 1.12.2 |
How do I fix CVE-2026-54593?
Upgrade pterodactyl/panel to 1.12.3 or later.
Upgrade, and check permissions on every request on the server, not only in the interface. More about Missing authorization.
Is CVE-2026-54593 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54593 exists.
Sources
Also known as GHSA-8r6w-3qq5-4p4r, GO-2026-6120.