CVE-2025-39806
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
16/09/2025
Última modificación:
16/09/2025
Descripción
*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
HID: multitouch: fix slab out-of-bounds access in mt_report_fixup()<br />
<br />
A malicious HID device can trigger a slab out-of-bounds during<br />
mt_report_fixup() by passing in report descriptor smaller than<br />
607 bytes. mt_report_fixup() attempts to patch byte offset 607<br />
of the descriptor with 0x25 by first checking if byte offset<br />
607 is 0x15 however it lacks bounds checks to verify if the<br />
descriptor is big enough before conducting this check. Fix<br />
this bug by ensuring the descriptor size is at least 608<br />
bytes before accessing it.<br />
<br />
Below is the KASAN splat after the out of bounds access happens:<br />
<br />
[ 13.671954] ==================================================================<br />
[ 13.672667] BUG: KASAN: slab-out-of-bounds in mt_report_fixup+0x103/0x110<br />
[ 13.673297] Read of size 1 at addr ffff888103df39df by task kworker/0:1/10<br />
[ 13.673297]<br />
[ 13.673297] CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Not tainted 6.15.0-00005-gec5d573d83f4-dirty #3<br />
[ 13.673297] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/04<br />
[ 13.673297] Call Trace:<br />
[ 13.673297] <br />
[ 13.673297] dump_stack_lvl+0x5f/0x80<br />
[ 13.673297] print_report+0xd1/0x660<br />
[ 13.673297] kasan_report+0xe5/0x120<br />
[ 13.673297] __asan_report_load1_noabort+0x18/0x20<br />
[ 13.673297] mt_report_fixup+0x103/0x110<br />
[ 13.673297] hid_open_report+0x1ef/0x810<br />
[ 13.673297] mt_probe+0x422/0x960<br />
[ 13.673297] hid_device_probe+0x2e2/0x6f0<br />
[ 13.673297] really_probe+0x1c6/0x6b0<br />
[ 13.673297] __driver_probe_device+0x24f/0x310<br />
[ 13.673297] driver_probe_device+0x4e/0x220<br />
[ 13.673297] __device_attach_driver+0x169/0x320<br />
[ 13.673297] bus_for_each_drv+0x11d/0x1b0<br />
[ 13.673297] __device_attach+0x1b8/0x3e0<br />
[ 13.673297] device_initial_probe+0x12/0x20<br />
[ 13.673297] bus_probe_device+0x13d/0x180<br />
[ 13.673297] device_add+0xe3a/0x1670<br />
[ 13.673297] hid_add_device+0x31d/0xa40<br />
[...]
Impacto
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/0379eb8691b9c4477da0277ae0832036ca4410b4
- https://git.kernel.org/stable/c/3055309821dd3da92888f88bad10f0324c3c89fe
- https://git.kernel.org/stable/c/4263e5851779f7d8ebfbc9cc7d2e9b0217adba8d
- https://git.kernel.org/stable/c/7ab7311c43ae19c66c53ccd8c5052a9072a4e338
- https://git.kernel.org/stable/c/c13e95587583d018cfbcc277df7e02d41902ac5a
- https://git.kernel.org/stable/c/d4e6e2680807671e1c73cd6a986b33659ce92f2b