]> git.baikalelectronics.ru Git - kernel.git/commit
KEYS: encrypted: fix buffer overread in valid_master_desc()
authorEric Biggers <ebiggers@google.com>
Thu, 8 Jun 2017 13:48:18 +0000 (14:48 +0100)
committerJames Morris <james.l.morris@oracle.com>
Fri, 9 Jun 2017 03:29:46 +0000 (13:29 +1000)
commite6e51400fa1aa23d6ca313c1cf8efc4a587aff72
tree717c0817eea7ddb40659b40f45f7524eedddc901
parent7d79709a0463cacb31dd5cdb4e5271a5ffecf8f7
KEYS: encrypted: fix buffer overread in valid_master_desc()

With the 'encrypted' key type it was possible for userspace to provide a
data blob ending with a master key description shorter than expected,
e.g. 'keyctl add encrypted desc "new x" @s'.  When validating such a
master key description, validate_master_desc() could read beyond the end
of the buffer.  Fix this by using strncmp() instead of memcmp().  [Also
clean up the code to deduplicate some logic.]

Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
security/keys/encrypted-keys/encrypted.c