{"id":"CVE-2025-69197","aliases":["EUVD-2026-1040","GHSA-rgmp-4873-r683"],"status":"published","title":"Pterodactyl TOTPs can be reused during validity window","description":"Pterodactyl is a free, open-source game server management panel. Versions 1.11.11 and below allow TOTP to be used multiple times during its validity window. Users with 2FA enabled are prompted to enter a token during sign-in, and afterward it is not sufficiently marked as used in the system. This allows an attacker who intercepts that token to use it in addition to a known username/password during the 60-second token validity window. The attacker must have intercepted a valid 2FA token (for example, during a screen share). This issue is fixed in version 1.12.0.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00356,"percentile":0.29609,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-287","CWE-294"],"published":"2026-01-06T00:44:23Z","modified":"2026-10-28T02:30:41Z","fixes":[{"ecosystem":"Packagist","package":"pterodactyl/panel","fixed_in":["1.12.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"Packagist","package":"pterodactyl/panel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.12.0"}]}]},{"source":"osv","ecosystem":"Packagist","package":"pterodactyl/panel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.12.0"}]}],"versions":["v0.1.0-beta","v0.1.1-beta","v0.1.2-beta","v0.2.0-beta","v0.3.0-beta","v0.4.0-beta","v0.4.1-beta","v0.5.0","v0.5.0-rc.1","v0.5.0-rc.2","v0.5.1","v0.5.2","v0.5.3","v0.5.4","v0.5.5","v0.5.6","v0.5.7","v0.6.0","v0.6.0-beta.1","v0.6.0-beta.2","v0.6.0-beta.2.1","v0.6.0-rc.1","v0.6.1","v0.6.2","v0.6.3","v0.6.4","v0.7.0","v0.7.0-beta.1","v0.7.0-beta.2","v0.7.0-beta.3","v0.7.0-beta.4","v0.7.0-rc.1","v0.7.0-rc.2","v0.7.1","v0.7.10","v0.7.11","v0.7.12","v0.7.13","v0.7.14","v0.7.15","v0.7.16","v0.7.17","v0.7.18","v0.7.19","v0.7.2","v0.7.3","v0.7.4","v0.7.5","v0.7.6","v0.7.7","v0.7.8","v0.7.9","v0.8.0-alpha.1","v0.8.0-alpha.2","v1.0.0","v1.0.0-beta.1","v1.0.0-beta.2","v1.0.0-beta.3","v1.0.0-beta.4","v1.0.0-beta.5","v1.0.0-beta.6","v1.0.0-beta.7","v1.0.0-rc.1","v1.0.0-rc.2","v1.0.0-rc.3","v1.0.0-rc.4","v1.0.0-rc.5","v1.0.0-rc.6","v1.0.0-rc.7","v1.0.1","v1.0.2","v1.0.3","v1.1.0","v1.1.1","v1.1.2","v1.1.3","v1.10.0","v1.10.1","v1.10.2","v1.10.3","v1.10.4","v1.11.0","v1.11.0-rc.1","v1.11.0-rc.2","v1.11.1","v1.11.10","v1.11.11","v1.11.2","v1.11.3","v1.11.4","v1.11.5","v1.11.6","v1.11.7","v1.11.8","v1.11.9","v1.2.0","v1.2.1","v1.2.2","v1.3.0","v1.3.1","v1.3.2","v1.4.0","v1.4.1","v1.4.2","v1.5.0","v1.5.1","v1.6.0","v1.6.1","v1.6.2","v1.6.3","v1.6.5","v1.6.6","v1.7.0","v1.8.0","v1.8.1","v1.9.0","v1.9.1","v1.9.2"]}],"products":[{"vendor":"convoypanel","product":"panel"},{"vendor":"pterodactyl","product":"panel"}],"references":[{"url":"https://github.com/pterodactyl/panel/security/advisories/GHSA-rgmp-4873-r683","tags":["x_refsource_CONFIRM","Vendor Advisory","advisory","web"]},{"url":"https://github.com/pterodactyl/panel/commit/032bf076d92bb2f929fa69c1bac1b89f26b8badf","tags":["x_refsource_MISC","Patch","fix","web"]},{"url":"https://github.com/pterodactyl/panel/releases/tag/v1.12.0","tags":["x_refsource_MISC","Product","Release Notes","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-69197","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-rgmp-4873-r683"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/69xxx/CVE-2025-69197.json","tags":["advisory"]},{"url":"https://github.com/pterodactyl/panel","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2025-69197","title":"Pterodactyl TOTPs can be reused during validity window","description":"Pterodactyl is a free, open-source game server management panel. Versions 1.11.11 and below allow TOTP to be used multiple times during its validity window. Users with 2FA enabled are prompted to enter a token during sign-in, and afterward it is not sufficiently marked as used in the system. This allows an attacker who intercepts that token to use it in addition to a known username/password during the 60-second token validity window. The attacker must have intercepted a valid 2FA token (for example, during a screen share). This issue is fixed in version 1.12.0.","status":"published","published":"2026-01-06T00:44:23.399Z","modified":"2026-01-06T19:01:05.967Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-287","CWE-294"],"updated_at":"2026-11-02T14:32:41.089134Z"}],"euvd":[{"id":"EUVD-2026-1040","description":"Pterodactyl is a free, open-source game server management panel. Versions 1.11.11 and below allow TOTP to be used multiple times during its validity window. Users with 2FA enabled are prompted to enter a token during sign-in, and afterward it is not sufficiently marked as used in the system. This allows an attacker who intercepts that token to use it in addition to a known username/password during the 60-second token validity window. The attacker must have intercepted a valid 2FA token (for example, during a screen share). This issue is fixed in version 1.12.0.","status":"published","published":"2026-01-06T00:44:23Z","modified":"2026-01-06T19:01:05Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T19:48:55.49901Z"}],"ghsa":[{"id":"GHSA-rgmp-4873-r683","title":"Pterodactyl TOTPs can be reused during validity window","description":"### Summary\nWhen a user signs into an account with 2FA enabled they are prompted to enter a token. When that token is used, it is not sufficiently marked as used in the system allowing an attacker that intercepts that token to then use it in addition to a known username/password during the token validity window.\n\nThis vulnerability requires that an attacker already be in possession of a valid username and password combination, and intercept a valid 2FA token (for example, during a screen share). The token must then be provided in addition to the username and password during the limited token validity window. The validity window is ~60 seconds as the Panel allows at most one additional window to the current one, each window being 30 seconds.","status":"published","published":"2026-01-06T17:20:57Z","modified":"2026-01-06T17:20:58Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-287"],"updated_at":"2026-11-02T14:39:16.156387Z"}],"nvd":[{"id":"CVE-2025-69197","description":"Pterodactyl is a free, open-source game server management panel. Versions 1.11.11 and below allow TOTP to be used multiple times during its validity window. Users with 2FA enabled are prompted to enter a token during sign-in, and afterward it is not sufficiently marked as used in the system. This allows an attacker who intercepts that token to use it in addition to a known username/password during the 60-second token validity window. The attacker must have intercepted a valid 2FA token (for example, during a screen share). This issue is fixed in version 1.12.0.","status":"published","published":"2026-01-06T01:16:01.537Z","modified":"2026-10-07T10:10:00.213Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"secondary"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-287","CWE-294"],"updated_at":"2026-11-02T14:11:55.613137Z"}],"osv":[{"id":"CVE-2025-69197","title":"Pterodactyl TOTPs can be reused during validity window","description":"Pterodactyl is a free, open-source game server management panel. Versions 1.11.11 and below allow TOTP to be used multiple times during its validity window. Users with 2FA enabled are prompted to enter a token during sign-in, and afterward it is not sufficiently marked as used in the system. This allows an attacker who intercepts that token to use it in addition to a known username/password during the 60-second token validity window. The attacker must have intercepted a valid 2FA token (for example, during a screen share). This issue is fixed in version 1.12.0.","status":"published","published":"2026-01-06T00:44:23.399Z","modified":"2026-10-28T02:30:41.796049995Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-287","CWE-294"],"updated_at":"2026-11-02T15:44:52.859856Z"},{"id":"GHSA-rgmp-4873-r683","title":"Pterodactyl TOTPs can be reused during validity window","description":"### Summary\nWhen a user signs into an account with 2FA enabled they are prompted to enter a token. When that token is used, it is not sufficiently marked as used in the system allowing an attacker that intercepts that token to then use it in addition to a known username/password during the token validity window.\n\nThis vulnerability requires that an attacker already be in possession of a valid username and password combination, and intercept a valid 2FA token (for example, during a screen share). The token must then be provided in addition to the username and password during the limited token validity window. The validity window is ~60 seconds as the Panel allows at most one additional window to the current one, each window being 30 seconds.","status":"published","published":"2026-01-06T17:20:57Z","modified":"2026-02-03T03:13:41.574395Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-287"],"updated_at":"2026-11-02T15:46:55.877614Z"}]}}
