CVE-2026-54593

Pterodactyl's improper JWT scoping allows subuser to upload files when not explicitly granted `file.create` permissions

Published Jul 28, 2026 CVSS 3.1 · 8.1 High EPSS < 1% KEV · Not listed
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.

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-8r6w-3qq5-4p4r Pterodactyl's improper JWT scoping allows subuser to upload files when not explicitly granted `file.create` permissions
History
Type Values Removed Values Added
First Time appeared Pterodactyl
Pterodactyl panel
Vendors & Products Pterodactyl
Pterodactyl panel
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
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.
Title Pterodactyl's improper JWT scoping allows subuser to upload files when not explicitly granted `file.create` permissions
Weaknesses CWE-1259
CWE-1270
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 28, 2026, 4:39 PM
Reserved
Jun 15, 2026, 7:45 PM
Status
Deferred
Published
Jul 28, 2026, 4:19 PM
Modified
Oct 24, 2026, 1:10 PM