CVE-2026-54593
Full vulnerability record from the local CVENow database.
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.
View original CVE JSON
{
"id": "CVE-2026-54593",
"sourceIdentifier": "[email protected]",
"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": "[email protected]",
"affectedData": [
{
"vendor": "pterodactyl",
"product": "panel",
"versions": [
{
"version": "< 1.12.3",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"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": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-1259"
},
{
"lang": "en",
"value": "CWE-1270"
}
]
}
],
"references": [
{
"url": "https://github.com/pterodactyl/panel/commit/7ffcd636310bb72b54bac3280d2a15e727feded7",
"source": "[email protected]"
},
{
"url": "https://github.com/pterodactyl/panel/pull/5636",
"source": "[email protected]"
},
{
"url": "https://github.com/pterodactyl/panel/security/advisories/GHSA-8r6w-3qq5-4p4r",
"source": "[email protected]"
},
{
"url": "https://github.com/pterodactyl/wings/commit/d0ddc80844479302abdaf9654de3bacd511c0f5c",
"source": "[email protected]"
}
]
}