CVE-2022-49393

Summary

In the Linux kernel, the following vulnerability has been resolved:

misc: fastrpc: fix list iterator in fastrpc_req_mem_unmap_impl

This is another instance of incorrect use of list iterator and checking it for NULL.

The list iterator value 'map' will always be set and non-NULL by list_for_each_entry(), so it is incorrect to assume that the iterator value will be NULL if the list is empty (in this case, the check 'if (!map) {' will always be false and never exit as expected).

To fix the bug, use a new variable 'iter' as the list iterator, while use the original variable 'map' as a dedicated pointer to point to the found element.

Without this patch, Kernel crashes with below trace:

Unable to handle kernel access to user memory outside uaccess routines at virtual address 0000ffff7fb03750 … Call trace: fastrpc_map_create+0x70/0x290 [fastrpc] fastrpc_req_mem_map+0xf0/0x2dc [fastrpc] fastrpc_device_ioctl+0x138/0xc60 [fastrpc] __arm64_sys_ioctl+0xa8/0xec invoke_syscall+0x48/0x114 el0_svc_common.constprop.0+0xd4/0xfc do_el0_svc+0x28/0x90 el0_svc+0x3c/0x130 el0t_64_sync_handler+0xa4/0x130 el0t_64_sync+0x18c/0x190 Code: 14000016 f94000a5 eb05029f 54000260 (b94018a6) —[ end trace 0000000000000000 ]—

Affected Software

VendorProductVersion RangeStatus
LinuxLinux5c1b97c7d7b736e6439af4f43a65837bc72f56c1 < 2d12905aad462383f4e7a5fdb024d2b7ae2d10cfaffected
LinuxLinux5c1b97c7d7b736e6439af4f43a65837bc72f56c1 < c5c07c5958cf0c9af6e76813e6de15d42ee49822affected
LinuxLinux5.18affected
LinuxLinux0 < 5.18unaffected
LinuxLinux5.18.3 <= 5.18.*unaffected
LinuxLinux5.19 <= *unaffected

Weaknesses

References