Description
In the Linux kernel, the following vulnerability has been resolved: tee: add overflow check in register_shm_helper() With special lengths supplied by user space, register_shm_helper() has an integer overflow when calculating the number of pages covered by a supplied user space memory region. This causes internal_get_user_pages_fast() a helper function of pin_user_pages_fast() to do a NULL pointer dereference: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010 Modules linked in: CPU: 1 PID: 173 Comm: optee_example_a Not tainted 5.19.0 #11 Hardware name: QEMU QEMU Virtual Machine, BIOS 0.0.0 02/06/2015 pc : internal_get_user_pages_fast+0x474/0xa80 Call trace: internal_get_user_pages_fast+0x474/0xa80 pin_user_pages_fast+0x24/0x4c register_shm_helper+0x194/0x330 tee_shm_register_user_buf+0x78/0x120 tee_ioctl+0xd0/0x11a0 __arm64_sys_ioctl+0xa8/0xec invoke_syscall+0x48/0x114 Fix this by adding an an explicit call to access_ok() in tee_shm_register_user_buf() to catch an invalid user space address early.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
033ddf12bcf5326b93bd604f50a7474a434a35f9 to < b37e0f17653c00b586cdbcdf0dbca475358ecffdaffected033ddf12bcf5326b93bd604f50a7474a434a35f9 to < 965333345fe952cc7eebc8e3a565ffc709441af2affected033ddf12bcf5326b93bd604f50a7474a434a35f9 to < 578c349570d2a912401963783b36e0ec7a25c053affected033ddf12bcf5326b93bd604f50a7474a434a35f9 to < c12f0e6126ad223806a365084e86370511654bf1affected033ddf12bcf5326b93bd604f50a7474a434a35f9 to < 2f8e79a1a6128214cb9b205a9869341af5dfb16baffected033ddf12bcf5326b93bd604f50a7474a434a35f9 to < 58c008d4d398f792ca67f35650610864725518fdaffected033ddf12bcf5326b93bd604f50a7474a434a35f9 to < 573ae4f13f630d6660008f1974c0a8a29c30e18aaffected
Linux Linux
Default version status: affected
4.16affected0 to < 4.16unaffected4.19.256 to ≤ 4.19.*unaffected5.4.211 to ≤ 5.4.*unaffected5.10.137 to ≤ 5.10.*unaffected5.15.62 to ≤ 5.15.*unaffected5.18.19 to ≤ 5.18.*unaffected5.19.3 to ≤ 5.19.*unaffected6.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b37e0f17653c00b586cdbcdf0dbca475358ecffd ↗
- https://git.kernel.org/stable/c/965333345fe952cc7eebc8e3a565ffc709441af2 ↗
- https://git.kernel.org/stable/c/578c349570d2a912401963783b36e0ec7a25c053 ↗
- https://git.kernel.org/stable/c/c12f0e6126ad223806a365084e86370511654bf1 ↗
- https://git.kernel.org/stable/c/2f8e79a1a6128214cb9b205a9869341af5dfb16b ↗
- https://git.kernel.org/stable/c/58c008d4d398f792ca67f35650610864725518fd ↗
- https://git.kernel.org/stable/c/573ae4f13f630d6660008f1974c0a8a29c30e18a ↗