Pterodactyl Panel Allows Cross-Node Server Configuration Disclosure via Remote API Missing Authorization
Wings is the server control plane for Pterodactyl, a free, open-source game server management panel. Prior to version 1.12.1, a missing authorization check in multiple controllers allows any user with access to a node secret token to fetch information about any server on a Pterodactyl instance, even if that server is associated with a different node. This issue stems from missing logic to verify that the node requesting server data is the same node that the server is associated with. Any authenticated Wings node can retrieve server installation scripts (potentially containing secret values) and manipulate the installation status of servers belonging to other nodes. Wings nodes may also manipulate the transfer status of servers belonging to other nodes. This vulnerability requires a user to acquire a secret access token for a node. Unless a user gains access to a Wings secret access token they would not be able to access any of these vulnerable endpoints, as every endpoint requires a valid node access token. A single compromised Wings node daemon token (stored in plaintext at `/etc/pterodactyl/config.yml`) grants access to sensitive configuration data of every server on the panel, rather than only to servers that the node has access to. An attacker can use this information to move laterally through the system, send excessive notifications, destroy server data on other nodes, and otherwise exfiltrate secrets that they should not have access to with only a node token. Additional
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-26016
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 16:01 UTC · Revision 1
Source evidence
Pterodactyl Panel Allows Cross-Node Server Configuration Disclosure via Remote API Missing Authorization
core-osv · Original sourcePublished 19 Feb 2026, 15:55 UTC
Wings is the server control plane for Pterodactyl, a free, open-source game server management panel. Prior to version 1.12.1, a missing authorization check in multiple controllers allows any user with access to a node secret token to fetch information about any server on a Pterodactyl instance, even if that server is associated with a different node. This issue stems from missing logic to verify that the node requesting server data is the same node that the server is associated with. Any authenticated Wings node can retrieve server installation scripts (potentially containing secret values) and manipulate the installation status of servers belonging to other nodes. Wings nodes may also manipulate the transfer status of servers belonging to other nodes. This vulnerability requires a user to acquire a secret access token for a node. Unless a user gains access to a Wings secret access token they would not be able to access any of these vulnerable endpoints, as every endpoint requires a valid node access token. A single compromised Wings node daemon token (stored in plaintext at `/etc/pterodactyl/config.yml`) grants access to sensitive configuration data of every server on the panel, rather than only to servers that the node has access to. An attacker can use this information to move laterally through the system, send excessive notifications, destroy server data on other nodes, and otherwise exfiltrate secrets that they should not have access to with only a node token. Additional
osv:CVE-2026-26016
Complete source record
{
"id": "1f8936fa735e01ad711c0f09ef04017771ced2d8ea2184417de3c8e0459e072d",
"url": "https://osv.dev/vulnerability/CVE-2026-26016",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Pterodactyl Panel Allows Cross-Node Server Configuration Disclosure via Remote API Missing Authorization",
"summary": "Wings is the server control plane for Pterodactyl, a free, open-source game server management panel. Prior to version 1.12.1, a missing authorization check in multiple controllers allows any user with access to a node secret token to fetch information about any server on a Pterodactyl instance, even if that server is associated with a different node. This issue stems from missing logic to verify that the node requesting server data is the same node that the server is associated with. Any authenticated Wings node can retrieve server installation scripts (potentially containing secret values) and manipulate the installation status of servers belonging to other nodes. Wings nodes may also manipulate the transfer status of servers belonging to other nodes. This vulnerability requires a user to acquire a secret access token for a node. Unless a user gains access to a Wings secret access token they would not be able to access any of these vulnerable endpoints, as every endpoint requires a valid node access token. A single compromised Wings node daemon token (stored in plaintext at `/etc/pterodactyl/config.yml`) grants access to sensitive configuration data of every server on the panel, rather than only to servers that the node has access to. An attacker can use this information to move laterally through the system, send excessive notifications, destroy server data on other nodes, and otherwise exfiltrate secrets that they should not have access to with only a node token. Additional",
"evidence": "osv:CVE-2026-26016",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2026-26016",
"aliases": [
"CVE-2026-26016",
"GHSA-g7vw-f8p5-c728"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:L/SA:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/pterodactyl/panel",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "0f82c105201b192d229f6abd5827e2ee7e672a05"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "1.12.1"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "0f82c105201b192d229f6abd5827e2ee7e672a05"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v1.12.1"
},
{
"cpe": "cpe:2.3:a:pterodactyl:panel:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "1.12.1"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v1.12.0",
"v1.11.7",
"v1.11.6",
"v1.11.5",
"v1.11.4",
"v1.11.3",
"v1.11.2",
"v1.11.1",
"v1.11.0",
"v1.11.0-rc.2",
"v1.11.0-rc.1",
"v1.10.4",
"v1.10.3",
"v1.10.2",
"v1.10.1",
"v1.10.0",
"v1.9.2",
"v1.9.1",
"v1.9.0",
"v1.8.1",
"v1.8.0",
"v1.7.0",
"v1.6.6",
"v1.6.5",
"v1.6.3",
"v1.6.2",
"v1.6.1",
"v1.6.0",
"v1.5.1",
"v1.5.0",
"v1.4.2",
"v1.4.1",
"v1.4.0",
"v1.3.2",
"v1.3.1",
"v1.3.0",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.3",
"v1.1.2",
"v1.1.1",
"v1.1.0",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v1.0.0-rc.7",
"v1.0.0-rc.6",
"v1.0.0-rc.5",
"v1.0.0-rc.4",
"v1.0.0-rc.3",
"v1.0.0-rc.1",
"v0.5.0",
"v0.4.1-beta",
"v0.4.0-beta",
"v0.3.0-beta",
"v0.2.0-beta",
"v0.1.2-beta",
"v0.1.1-beta",
"v0.1.0-beta"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-26016.json"
}
}
],
"modified": "2026-10-28T02:30:51.096750598Z",
"provider": "osv",
"references": [
"https://github.com/pterodactyl/panel/releases/tag/v1.12.1",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/26xxx/CVE-2026-26016.json",
"https://github.com/pterodactyl/panel/security/advisories/GHSA-g7vw-f8p5-c728",
"https://nvd.nist.gov/vuln/detail/CVE-2026-26016"
],
"provider_metadata": {
"cwe_ids": [
"CWE-283",
"CWE-639"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/26xxx/CVE-2026-26016.json"
}
},
"related_cves": [
{
"value": "CVE-2026-26016",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 519820,
"published_at": "2026-02-19T15:55:20.064+00:00"
}