Skip to content

Wings exposes node configuration secrets through egg configuration-file templating

Critical severity GitHub Reviewed Published Jun 12, 2026 in pterodactyl/wings • Updated Jul 31, 2026

Package

gomod github.com/pterodactyl/wings (Go)

Affected versions

< 1.12.3

Patched versions

1.12.3

Description

Impact

Type: Exposure of sensitive information / insufficiently protected credentials
leading to privilege escalation and full node compromise.

Wings exposes its entire daemon configuration to the egg configuration-file
templating engine. When Wings renders a server's configuration files, any
{{config.<path>}} placeholder in a replacement value is resolved against the
full marshalled daemon configuration, with no restriction on which paths may be
read.

Because the Panel substitutes user-controlled egg variable values into these
replacements before sending them to Wings, a low-privileged user can smuggle a
{{config.*}} placeholder through a variable value. The placeholder is then
resolved by Wings and written into a file inside the user's own server, where it
can be read via the file manager or SFTP.

This allows reading, among other values:

  • {{config.token}} - the node's daemon token, which is both the API bearer for
      the Panel⇆Wings channel and the HMAC signing key for every JWT the node
      issues;
  • {{config.token_id}};
  • {{config.docker.registries}} - configured container-registry credentials.

Who is impacted: Any deployment where a user who is not fully trusted can set
an egg variable value (e.g. a server owner or a subuser with the startup.update
permission) and the server's egg renders a user-editable variable into a
configuration file via {{server.build.env.*}}. This pattern is common across
stock and community eggs, so most multi-tenant / shared-hosting deployments are
affected.

Resulting impact: Disclosure of the node daemon token lets the attacker forge
authentication tokens and act against every server on that node, a full-node compromise reachable from a low-privileged
account.

Patches

Yes. Fixed in Wings v1.12.3 (Panel is unaffected; the fix is Wings-only).

Wings no longer exposes its full configuration to the templating engine only an
explicit, non-secret subset (the Docker network interface) can be resolved by
{{config.*}} placeholders.

Users should upgrade Wings to v1.12.3 or later.

After upgrading, rotate the affected nodes' daemon tokens, since a previously
exfiltrated token remains valid until rotated (Admin → Nodes → Configuration →
reset the token, then re-deploy config.yml to the node).

Workarounds

For operators who cannot upgrade immediately:

  • Audit your eggs and ensure no user-editable variable is rendered into a
      configuration file, or mark such variables non-editable.

These reduce exposure but are not a complete fix; upgrading Wings is the
recommended action.

References

@anthonyphysgun anthonyphysgun published to pterodactyl/wings Jun 12, 2026
Published to the GitHub Advisory Database Jul 31, 2026
Reviewed Jul 31, 2026
Last updated Jul 31, 2026

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(20th percentile)

Weaknesses

Exposure of Sensitive Information to an Unauthorized Actor

The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. Learn more on MITRE.

Insufficiently Protected Credentials

The product transmits or stores authentication credentials, but it uses an insecure method that is susceptible to unauthorized interception and/or retrieval. Learn more on MITRE.

CVE ID

CVE-2026-52855

GHSA ID

GHSA-pfvc-3p5h-x7h6

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.