{"id":"CVE-2026-54593","sourceIdentifier":"security-advisories@github.com","published":"2026-07-28T16:19:00.097","lastModified":"2026-10-24T13:10:00.147","vulnStatus":"Deferred","cveTags":[],"descriptions":[{"lang":"en","value":"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."},{"lang":"es","value":"Pterodactyl es un panel de gestión de servidores de juegos gratuito y de código abierto. Antes de la versión 1.12.3 del Panel y la versión 1.12.2 de Wings, el endpoint /upload/file de Wings aceptaba cualquier JWT válido firmado por el panel que contenía las claims server_uuid, user_uuid y unique_id sin verificar el propósito previsto del token; porque el Panel emite JWTs que contienen esas mismas claims para operaciones de menor privilegio, como la autenticación de WebSocket y los enlaces de descarga de archivos, un subusuario autenticado podía reutilizar uno de esos tokens (por ejemplo, un token de WebSocket obtenido solo con el permiso websocket.connect) al reproducirlo contra /upload/file para escribir archivos arbitrarios en el mismo servidor, a pesar de que nunca se le concedió el permiso file.create. Este problema está solucionado en la versión 1.12.3 del Panel y la versión 1.12.2 de Wings."}],"affected":[{"source":"security-advisories@github.com","affectedData":[{"vendor":"pterodactyl","product":"panel","versions":[{"version":"< 1.12.3","status":"affected"}]}]}],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","baseScore":8.1,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":2.8,"impactScore":5.2}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-07-28T16:39:28.643328Z","id":"CVE-2026-54593","options":[{"exploitation":"poc"},{"automatable":"no"},{"technicalImpact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"weaknesses":[{"source":"security-advisories@github.com","type":"Secondary","description":[{"lang":"en","value":"CWE-1259"},{"lang":"en","value":"CWE-1270"}]}],"references":[{"url":"https://github.com/pterodactyl/panel/commit/7ffcd636310bb72b54bac3280d2a15e727feded7","source":"security-advisories@github.com"},{"url":"https://github.com/pterodactyl/panel/pull/5636","source":"security-advisories@github.com"},{"url":"https://github.com/pterodactyl/panel/security/advisories/GHSA-8r6w-3qq5-4p4r","source":"security-advisories@github.com"},{"url":"https://github.com/pterodactyl/wings/commit/d0ddc80844479302abdaf9654de3bacd511c0f5c","source":"security-advisories@github.com"}]}