MEDIUM 5.0 Go

Pterodactyl Wings: Chmod operation can be used to change permissions of files outside of the server container

GHSA-rhq6-9rgh-v45c · GO-2026-5814

Published · Modified

AI SAST

Find this class of vulnerability in your own code

Corgea's AI-native static analysis detects vulnerabilities like this one across your repositories, ranks them by exploitability, and returns review-ready fixes.

Description

In wings/internal/ufs/fs_unix.go (line 92-94), this function is defined and is used to change permissions of files in the server:

func (fs *UnixFS) fchmodat(op string, dirfd int, name string, mode FileMode) error {
   return ensurePathError(unix.Fchmodat(dirfd, name, uint32(mode), 0), op, name)
}

This 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.

Ready to move

Start Securing

Free, no credit card | First findings in minutes