GHSA-pfvc-3p5h-x7h6

Suggest an improvement
Source
https://github.com/advisories/GHSA-pfvc-3p5h-x7h6
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-pfvc-3p5h-x7h6/GHSA-pfvc-3p5h-x7h6.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-pfvc-3p5h-x7h6
Aliases
Published
2026-07-31T16:16:46Z
Modified
2026-08-18T15:11:12Z
Severity
  • 9.9 (Critical) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H CVSS Calculator
Summary
Wings exposes node configuration secrets through egg configuration-file templating
Details

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.

Database specific
{
    "cwe_ids": [
        "CWE-200",
        "CWE-522"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-07-31T16:16:46Z",
    "nvd_published_at": null,
    "severity": "CRITICAL"
}
References

Affected packages

Go / github.com/pterodactyl/wings

Package

Name
github.com/pterodactyl/wings
View open source insights on deps.dev
Purl
pkg:golang/github.com/pterodactyl/wings

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
1.12.3

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-pfvc-3p5h-x7h6/GHSA-pfvc-3p5h-x7h6.json"