On 02/20/2017 08:40 AM, Greg Kurz wrote: > All operations dealing with extended attributes are vulnerable to symlink > attacks because they use path-based syscalls which can traverse symbolic > links while walking through the dirname part of the path. > > The solution is to introduce helpers based on opendir_nofollow(). This > calls for "at" versions of the extended attribute syscalls, which don't > exist unfortunately. This patch implement them by simulating the "at" > behavior with fchdir(). Since the current working directory is process > wide, and we don't want to confuse another thread in QEMU, all the work > is done in a separate process. Can you emulate *at using /proc/fd/nnn/xyz? Coreutils was one of the early adopters of the power of *at functions, and found that emulation of *at via procfs was a LOT more efficient than emulation via fchdir (although both emulations still exist in gnulib, since procfs is not universal). -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org