{"id":"GHSA-rhq6-9rgh-v45c","title":"Pterodactyl Wings: Chmod operation can be used to change permissions of files outside of the server container","summary":"Pterodactyl Wings: Chmod operation can be used to change permissions of files outside of the server container","severity":"medium","cvss":5,"vendor":"pterodactyl","product":"github.com/pterodactyl/wings","ecosystem":"go","affected":["github.com/pterodactyl/wings >= 1.11.9, < 1.12.2"],"patched":["github.com/pterodactyl/wings 1.12.2"],"published":"2026-06-26","updated":"2026-06-26","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-rhq6-9rgh-v45c","references":[{"url":"https://github.com/pterodactyl/wings/security/advisories/GHSA-rhq6-9rgh-v45c"},{"url":"https://github.com/advisories/GHSA-rhq6-9rgh-v45c"}],"tags":["ghsa","go"],"ingestedAt":"2026-06-29T13:24:35.261Z","slug":"GHSA-rhq6-9rgh-v45c","body":"## Overview\n\nIn `wings/internal/ufs/fs_unix.go` (line 92-94), this function is defined and is used to change permissions of files in the server:\n\n```go\nfunc (fs *UnixFS) fchmodat(op string, dirfd int, name string, mode FileMode) error {\n   return ensurePathError(unix.Fchmodat(dirfd, name, uint32(mode), 0), op, name)\n}\n```\n\nThis call to the unix function `fchmodat(int fd, char* name, mode_t mode, int flags)`  does not have the flag `AT_SYMLINK_NOFOLLOW` set, and Wings neither checks or validate if the target file is a symlink. This allows one to change permissions of files or folders outside of the server container by making symlinks to existing files in the host and then chmoding it.\n\n## Affected packages\n\n- `github.com/pterodactyl/wings >= 1.11.9, < 1.12.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `github.com/pterodactyl/wings 1.12.2`","depth":"sunlit","depthScore":28,"depthScoreParts":{"impact":27.5,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}