CVE-2022-48867

In the Linux kernel, the following vulnerability has been resolved: dmaengine: idxd: Prevent use after free on completion memory On driver unload any pending descriptors are flushed at the time the interrupt is freed: idxd_dmaengine_drv_remove() -> drv_disable_wq() -> idxd_wq_free_irq() -> idxd_flush_pending_descs(). If there are any descriptors present that need to be flushed this flow triggers a "not present" page fault as below: BUG: unable to handle page fault for address: ff391c97c70c9040 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page The address that triggers the fault is the address of the descriptor that was freed moments earlier via: drv_disable_wq()->idxd_wq_free_resources() Fix the use after free by freeing the descriptors after any possible usage. This is done after idxd_wq_reset() to ensure that the memory remains accessible during possible completion writes by the device.
Configurations

Configuration 1 (hide)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

06 Sep 2024, 14:15

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 7.8
CWE CWE-416
References () https://git.kernel.org/stable/c/1beeec45f9ac31eba52478379f70a5fa9c2ad005 - () https://git.kernel.org/stable/c/1beeec45f9ac31eba52478379f70a5fa9c2ad005 - Patch
References () https://git.kernel.org/stable/c/b9e8e3fcfec625fc1c2f68f684448aeeb882625b - () https://git.kernel.org/stable/c/b9e8e3fcfec625fc1c2f68f684448aeeb882625b - Patch
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: dmaengine: idxd: evita el use after free la memoria al finalizar. Al descargar el controlador, los descriptores pendientes se eliminan en el momento en que se libera la interrupción: idxd_dmaengine_drv_remove() -> drv_disable_wq() -> idxd_wq_free_irq () -> idxd_flush_pending_descs(). Si hay algún descriptor presente que deba eliminarse, este flujo desencadena un error de página "no presente" como se muestra a continuación: ERROR: no se puede manejar el error de página para la dirección: ff391c97c70c9040 #PF: acceso de lectura del supervisor en modo kernel #PF: error_code(0x0000 ) - página no presente La dirección que desencadena la falla es la dirección del descriptor que se liberó momentos antes a través de: drv_disable_wq()->idxd_wq_free_resources() Corrige el use-after-free liberando los descriptores después de cualquier posible uso. Esto se hace después de idxd_wq_reset() para garantizar que la memoria permanezca accesible durante posibles escrituras completas por parte del dispositivo.
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

21 Aug 2024, 07:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-08-21 07:15

Updated : 2024-09-06 14:15


NVD link : CVE-2022-48867

Mitre link : CVE-2022-48867

CVE.ORG link : CVE-2022-48867


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-416

Use After Free