CVE-2024-49762
Description
Pterodactyl is a free, open-source game server management panel. When a user disables two-factor authentication via the Panel, a DELETE request with their current password in a query parameter will be sent. While query parameters are encrypted when using TLS, many webservers (including ones officially documented for use with Pterodactyl) will log query parameters in plain-text, storing a user's password in plain text. Prior to version 1.11.8, if a malicious user obtains access to these logs they could potentially authenticate against a user's account; assuming they are able to discover the account's email address or username separately. This problem has been patched in version 1.11.8. There are no workarounds at this time. There is not a direct vulnerability within the software as it relates to logs generated by intermediate components such as web servers or Layer 7 proxies. Updating to v1.11.8 or adding the linked patch manually are the only ways to avoid this problem. As this vulnerability relates to historical logging of sensitive data, users who have ever disabled 2FA on a Panel (self-hosted or operated by a company) should change their passwords and consider enabling 2FA if it was left disabled. While it's unlikely that their account swill be compromised by this vulnerability, it's not impossible. Panel administrators should consider clearing any access logs that may contain sensitive data.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
pterodactyl/panelPackagist | < 1.11.8 | 1.11.8 |
Patches
275b59080e281fix!: use `POST` instead of `DELETE` when disabling 2FA
2 files changed · +6 −4
resources/scripts/api/account/disableAccountTwoFactor.ts+5 −3 modified@@ -1,9 +1,11 @@ import http from '@/api/http'; -export default (password: string): Promise<void> => { +function disableAccountTwoFactor(password: string): Promise<void> { return new Promise((resolve, reject) => { - http.delete('/api/client/account/two-factor', { params: { password } }) + http.post('/api/client/account/two-factor/disable', { password }) .then(() => resolve()) .catch(reject); }); -}; +} + +export default disableAccountTwoFactor;
routes/api-client.php+1 −1 modified@@ -24,7 +24,7 @@ Route::get('/', [Client\AccountController::class, 'index'])->name('api:client.account'); Route::get('/two-factor', [Client\TwoFactorController::class, 'index']); Route::post('/two-factor', [Client\TwoFactorController::class, 'store']); - Route::delete('/two-factor', [Client\TwoFactorController::class, 'delete']); + Route::post('/two-factor/disable', [Client\TwoFactorController::class, 'delete']); }); Route::put('/email', [Client\AccountController::class, 'updateEmail'])->name('api:client.account.update-email');
8be2b892c394fix!: use `POST` instead of `DELETE` when disabling 2FA
2 files changed · +6 −4
resources/scripts/api/account/disableAccountTwoFactor.ts+5 −3 modified@@ -1,9 +1,11 @@ import http from '@/api/http'; -export default (password: string): Promise<void> => { +function disableAccountTwoFactor(password: string): Promise<void> { return new Promise((resolve, reject) => { - http.delete('/api/client/account/two-factor', { params: { password } }) + http.post('/api/client/account/two-factor/disable', { password }) .then(() => resolve()) .catch(reject); }); -}; +} + +export default disableAccountTwoFactor;
routes/api-client.php+1 −1 modified@@ -24,7 +24,7 @@ Route::get('/', [Client\AccountController::class, 'index'])->name('api:client.account'); Route::get('/two-factor', [Client\TwoFactorController::class, 'index']); Route::post('/two-factor', [Client\TwoFactorController::class, 'store']); - Route::delete('/two-factor', [Client\TwoFactorController::class, 'delete']); + Route::post('/two-factor/disable', [Client\TwoFactorController::class, 'delete']); }); Route::put('/email', [Client\AccountController::class, 'updateEmail'])->name('api:client.account.update-email');
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
5- github.com/advisories/GHSA-c479-wq8g-57hrghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2024-49762ghsaADVISORY
- github.com/pterodactyl/panel/commit/75b59080e2812ced677dab516222b2a3bb34e3a4nvdWEB
- github.com/pterodactyl/panel/commit/8be2b892c3940bdc0157ccdab16685a72d105dd1nvdWEB
- github.com/pterodactyl/panel/security/advisories/GHSA-c479-wq8g-57hrnvdWEB
News mentions
0No linked articles in our index yet.