GIVE YOUR AGENT THE EVIDENCE

Set up in your agent.

One prompt to get started. Paste it into your coding agent to connect cve.new through MCP and bring vulnerability context into your workflow.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

GIVE YOUR AGENT THE EVIDENCE

Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

GHSA-24wv-6c99-f843critical10.0

Pterodactyl Panel Allows Unauthenticated Arbitrary Remote Code Execution

Check your stack

The advisory, in context

Impact

Using the /locales/locale.json with the locale and namespace query parameters, a malicious actor is able to execute arbitrary code, without being authenticated.

With the ability to execute arbitrary code, this vulnerability can be exploited in an infinite number of ways. It could be used to gain access to the Panel's server, read credentials from the Panel's config (.env or otherwise), extract sensitive information from the database (such as user details [username, email, first and last name, hashed password, ip addresses, etc]), access files of servers managed by the panel, etc.

Patches

This vulnerability was patched by https://github.com/pterodactyl/panel/commit/24c82b0e335fb5d7a844226b08abf9f176e592f0 and was released under the v1.11.11 tag without any other code modifications compared to v1.11.10.

For those who need to patch their installations in-place or apply it on top of other code modifications, a patch file can be retrieved from https://github.com/pterodactyl/panel/commit/24c82b0e335fb5d7a844226b08abf9f176e592f0.patch and applied using git apply.

Workarounds

Other than patching the software, there is no workaround in this software. Disabling the /locales/locale.json endpoint at the webserver level is possible, but would break the localization feature wherever it is used.

The only other workaround relies on an external Web Application Firewall (WAF), such as Cloudflare's WAF with their default ruleset (requires Pro plan or above, Free doesn't have the proper ruleset) to mitigate this attack.

Updating to v1.11.11 or manually patching the software are the only recommended ways to completely mitigate this vulnerability.

User Notice

Shortly after the v1.11.11release and it's announcement, security researchers and malicious actors have been attempting to exploit this vulnerability. While there hasn't been any official confirmations of breaches or successful exploits of the vulnerability in the wild, it is only a matter of time for those who remain on unpatched versions without any workarounds in place.

The scope of this vulnerability cannot be fully described, anything is possible. It is of utmost importance that anyone running a vulnerable version of this software, patch it or update to the latest available version immediately.

Affected packages

Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.

Ecosystem versions

Earlier releases before 1.11.11

Fixed in 1.11.11

117 explicitly affected 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.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

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "0"
        },
        {
          "fixed": "1.11.11"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "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.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"
  ]
}

References