From: Eric Biggers <hidden> Date: 2017-10-09 19:47:16
From: Eric Biggers <redacted>
When an fscrypt-encrypted file is opened, we request the file's master
key from the keyrings service as a logon key, then access its payload.
However, a revoked key has a NULL payload, and we failed to check for
this. request_key() *does* skip revoked keys, but there is still a
window where the key can be revoked before we acquire its semaphore.
Fix it by checking for a NULL payload, treating it like a key which was
already revoked at the time it was requested.
Fixes: 88bd6ccdcdd6 ("ext4 crypto: add encryption key management facilities")
Reviewed-by: James Morris <redacted>
Cc: <redacted> [v4.1+]
Signed-off-by: Eric Biggers <redacted>
---
Changed since v1: added Reviewed-by and resent as standalone patch.
Can this please be taken through the fscrypt tree?
fs/crypto/keyinfo.c | 5 +++++
1 file changed, 5 insertions(+)
@@ -109,6 +109,11 @@ static int validate_user_key(struct fscrypt_info *crypt_info,gotoout;}ukp=user_key_payload_locked(keyring_key);+if(!ukp){+/* key was revoked before we acquired its semaphore */+res=-EKEYREVOKED;+gotoout;+}if(ukp->datalen!=sizeof(structfscrypt_key)){res=-EINVAL;gotoout;
--
2.14.2.920.gcf0c67979c-goog
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Oct 09, 2017 at 12:46:18PM -0700, Eric Biggers wrote:
From: Eric Biggers <redacted>
When an fscrypt-encrypted file is opened, we request the file's master
key from the keyrings service as a logon key, then access its payload.
However, a revoked key has a NULL payload, and we failed to check for
this. request_key() *does* skip revoked keys, but there is still a
window where the key can be revoked before we acquire its semaphore.
Fix it by checking for a NULL payload, treating it like a key which was
already revoked at the time it was requested.
Fixes: 88bd6ccdcdd6 ("ext4 crypto: add encryption key management facilities")
Reviewed-by: James Morris <redacted>
Cc: <redacted> [v4.1+]
Signed-off-by: Eric Biggers <redacted>
Applied, thanks.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Biggers <hidden> Date: 2017-10-29 16:32:49
On Sun, Oct 29, 2017 at 06:23:05AM -0400, Theodore Ts'o wrote:
On Mon, Oct 09, 2017 at 12:46:18PM -0700, Eric Biggers wrote:
quoted
From: Eric Biggers <redacted>
When an fscrypt-encrypted file is opened, we request the file's master
key from the keyrings service as a logon key, then access its payload.
However, a revoked key has a NULL payload, and we failed to check for
this. request_key() *does* skip revoked keys, but there is still a
window where the key can be revoked before we acquire its semaphore.
Fix it by checking for a NULL payload, treating it like a key which was
already revoked at the time it was requested.
Fixes: 88bd6ccdcdd6 ("ext4 crypto: add encryption key management facilities")
Reviewed-by: James Morris <redacted>
Cc: <redacted> [v4.1+]
Signed-off-by: Eric Biggers <redacted>
Applied, thanks.
Hi Ted, you should drop this one, since it's already in mainline; David Howells
ended up taking the original series via the keyrings tree.
Thanks!
Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Oct 29, 2017 at 09:32:46AM -0700, Eric Biggers wrote:
Hi Ted, you should drop this one, since it's already in mainline; David Howells
ended up taking the original series via the keyrings tree.
Ah, I see it landed in v4.14-rc6. I'll drop it from the fscrypt tree.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-security-module" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html