]> git.baikalelectronics.ru Git - kernel.git/commit
fscrypt: don't print name of busy file when removing key
authorEric Biggers <ebiggers@google.com>
Mon, 20 Jan 2020 06:07:32 +0000 (22:07 -0800)
committerEric Biggers <ebiggers@google.com>
Wed, 22 Jan 2020 22:45:08 +0000 (14:45 -0800)
commit7c816582981fe2ac46f661e71358aedae546d985
treed025a3aa1bbcec4720d2d566e5236ae5ecff7390
parent1da13d4bacc1dffa82720f707394098e4d1610d6
fscrypt: don't print name of busy file when removing key

When an encryption key can't be fully removed due to file(s) protected
by it still being in-use, we shouldn't really print the path to one of
these files to the kernel log, since parts of this path are likely to be
encrypted on-disk, and (depending on how the system is set up) the
confidentiality of this path might be lost by printing it to the log.

This is a trade-off: a single file path often doesn't matter at all,
especially if it's a directory; the kernel log might still be protected
in some way; and I had originally hoped that any "inode(s) still busy"
bugs (which are security weaknesses in their own right) would be quickly
fixed and that to do so it would be super helpful to always know the
file path and not have to run 'find dir -inum $inum' after the fact.

But in practice, these bugs can be hard to fix (e.g. due to asynchronous
process killing that is difficult to eliminate, for performance
reasons), and also not tied to specific files, so knowing a file path
doesn't necessarily help.

So to be safe, for now let's just show the inode number, not the path.
If someone really wants to know a path they can use 'find -inum'.

Fixes: af5470725e35 ("fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY ioctl")
Cc: <stable@vger.kernel.org> # v5.4+
Link: https://lore.kernel.org/r/20200120060732.390362-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/crypto/keyring.c