| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| pterodactyl/panel | composer | <= 1.11.10 | 1.11.11 |
The vulnerability exists in the __invoke method of the Pterodactyl\Http\Controllers\Base\LocaleController class. This method is responsible for handling requests to the /locales/locale.json endpoint. The vulnerability is a path traversal issue, where the locale and namespace GET parameters are not properly sanitized before being used to construct a file path that is passed to the load method of the translation loader.
The vulnerable code allowed for multiple locales and namespaces to be processed, and it replaced dots with slashes in the namespace. This could be exploited by an attacker to traverse the directory structure and include arbitrary files. For example, an attacker could craft a request with a namespace like ../../../../../../etc/passwd to read that file.
The patch addresses this vulnerability by introducing a new Form Request class, Pterodactyl\Http\Requests\Base\LocaleRequest, which enforces strict validation rules on the locale and namespace parameters. The validation ensures that locale is exactly two lowercase letters and namespace is a simple string of lowercase letters. This prevents any path traversal or other malicious characters from being passed to the file loading mechanism. The controller's __invoke method is updated to use this new request class, thus ensuring that the input is validated before being used.
KEV Misses 88% of Exploited CVEs- Get the report