Skip to content

Commit

Permalink
x86/sgx: Add overflow check in sgx_validate_offset_length()
Browse files Browse the repository at this point in the history
commit f0861f4 upstream.

sgx_validate_offset_length() function verifies "offset" and "length"
arguments provided by userspace, but was missing an overflow check on
their addition. Add it.

Fixes: c6d26d3 ("x86/sgx: Add SGX_IOC_ENCLAVE_ADD_PAGES")
Signed-off-by: Borys Popławski <borysp@invisiblethingslab.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Cc: stable@vger.kernel.org # v5.11+
Link: https://lore.kernel.org/r/0d91ac79-6d84-abed-5821-4dbe59fa1a38@invisiblethingslab.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
boryspoplawski authored and gregkh committed Nov 26, 2022
1 parent d118247 commit 3b1c10f
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions arch/x86/kernel/cpu/sgx/ioctl.c
Expand Up @@ -356,6 +356,9 @@ static int sgx_validate_offset_length(struct sgx_encl *encl,
if (!length || !IS_ALIGNED(length, PAGE_SIZE))
return -EINVAL;

if (offset + length < offset)
return -EINVAL;

if (offset + length - PAGE_SIZE >= encl->size)
return -EINVAL;

Expand Down

0 comments on commit 3b1c10f

Please sign in to comment.