The vulnerability lies in the improper handling of symbolic links (symlinks) within the File Browser application. The application uses a scoped filesystem for each user to restrict their access to a specific directory. However, this scoping mechanism, which was based on afero.NewBasePathFs, only prevented lexical path traversal (i.e., using ../) and did not prevent the underlying operating system from following symlinks that pointed to files or directories outside the user's scope.
The patch for this vulnerability introduces a new filesystem layer called ScopedFs. This new layer wraps the standard filesystem operations (like opening, stating, or writing files) and, before each operation, it resolves any symlinks in the path to get the real, on-disk location of the target. It then checks if this resolved path is within the user's allowed scope. If it is not, the operation is denied with a permission error. This ScopedFs is now used for all user filesystem access, effectively closing the symlink vulnerability across the entire application.
The identified vulnerable functions are the HTTP handlers and file utility functions that were performing file operations without this crucial symlink validation. The patch removes the old, flawed checks from these functions and relies on the new, centralized ScopedFs to enforce security. The functions listed in vulnerable_functions are the key points where an attacker could trigger the vulnerability to read, write, or share files outside their intended scope.