← Back to team overview

ecryptfs team mailing list archive

[Bug 732628] Re: TOCTOU in mount.ecryptfs_private

 

Marc, Kees says that you have looked recently at how FUSE handles
situations like this.  Could you offer any suggestions as to how I could
lock the src and dest between the ownership check and the mount/umount?

-- 
You received this bug notification because you are a member of eCryptfs,
which is a direct subscriber.
https://bugs.launchpad.net/bugs/732628

Title:
  TOCTOU in mount.ecryptfs_private

Status in eCryptfs - Enterprise Cryptographic Filesystem:
  Triaged
Status in “ecryptfs-utils” package in Ubuntu:
  Triaged
Status in “ecryptfs-utils” package in Debian:
  New
Status in “ecryptfs-utils” package in Fedora:
  New

Bug description:
  check_ownerships() function doesn't work as it should because of a
  race condition.  Arguments of both mount() and umount() calls can be
  changed between the check and the usage.  This may lead to arbitrary
  mount point umounting or probably to gaining ability to try
  passphrases of otherpeople's ecryptfs storages.

  lock_counter() is also racy.  It (1) tries to check existance and
  ownership of the file before open(), (2) neither use stat() instead of
  lstat() nor O_NOFOLLOW, (3) is not protected against deletion of the
  lock file by the owner. The lock file should be probably created in
  root only writable directory before dropping EUID.



References