In the Linux kernel, the following vulnerability has been resolved:
HID: multitouch: fix slab out-of-bounds access in mtreportfixup()
A malicious HID device can trigger a slab out-of-bounds during mtreportfixup() by passing in report descriptor smaller than 607 bytes. mtreportfixup() attempts to patch byte offset 607 of the descriptor with 0x25 by first checking if byte offset 607 is 0x15 however it lacks bounds checks to verify if the descriptor is big enough before conducting this check. Fix this bug by ensuring the descriptor size is at least 608 bytes before accessing it.
Below is the KASAN splat after the out of bounds access happens:
[ 13.671954] ================================================================== [ 13.672667] BUG: KASAN: slab-out-of-bounds in mtreportfixup+0x103/0x110 [ 13.673297] Read of size 1 at addr ffff888103df39df by task kworker/0:1/10 [ 13.673297] [ 13.673297] CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Not tainted 6.15.0-00005-gec5d573d83f4-dirty #3 [ 13.673297] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/04 [ 13.673297] Call Trace: [ 13.673297] <TASK> [ 13.673297] dumpstacklvl+0x5f/0x80 [ 13.673297] printreport+0xd1/0x660 [ 13.673297] kasanreport+0xe5/0x120 [ 13.673297] _asanreportload1noabort+0x18/0x20 [ 13.673297] mtreportfixup+0x103/0x110 [ 13.673297] hidopenreport+0x1ef/0x810 [ 13.673297] mtprobe+0x422/0x960 [ 13.673297] hiddeviceprobe+0x2e2/0x6f0 [ 13.673297] reallyprobe+0x1c6/0x6b0 [ 13.673297] _driverprobedevice+0x24f/0x310 [ 13.673297] driverprobedevice+0x4e/0x220 [ 13.673297] _deviceattachdriver+0x169/0x320 [ 13.673297] busforeachdrv+0x11d/0x1b0 [ 13.673297] _deviceattach+0x1b8/0x3e0 [ 13.673297] deviceinitialprobe+0x12/0x20 [ 13.673297] busprobedevice+0x13d/0x180 [ 13.673297] deviceadd+0xe3a/0x1670 [ 13.673297] hidadddevice+0x31d/0xa40 [...]
[
{
"id": "CVE-2025-39806-0957c081",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146383214016550122350976708047102441594",
"56865388551021104251031019229457896156",
"9664634023901034654548110675584317843",
"198081901954153666990845465373984211304"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3055309821dd3da92888f88bad10f0324c3c89fe",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c"
}
},
{
"id": "CVE-2025-39806-2d87292b",
"signature_type": "Function",
"digest": {
"function_hash": "188874095121357054041542529159342403145",
"length": 607.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c13e95587583d018cfbcc277df7e02d41902ac5a",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c",
"function": "mt_report_fixup"
}
},
{
"id": "CVE-2025-39806-30cc9964",
"signature_type": "Function",
"digest": {
"function_hash": "326159661770603411276768142024419050979",
"length": 601.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ab7311c43ae19c66c53ccd8c5052a9072a4e338",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c",
"function": "mt_report_fixup"
}
},
{
"id": "CVE-2025-39806-598c41a9",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146383214016550122350976708047102441594",
"56865388551021104251031019229457896156",
"9664634023901034654548110675584317843",
"198081901954153666990845465373984211304"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d4e6e2680807671e1c73cd6a986b33659ce92f2b",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c"
}
},
{
"id": "CVE-2025-39806-7d9b22d3",
"signature_type": "Function",
"digest": {
"function_hash": "188874095121357054041542529159342403145",
"length": 607.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3055309821dd3da92888f88bad10f0324c3c89fe",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c",
"function": "mt_report_fixup"
}
},
{
"id": "CVE-2025-39806-bab0b957",
"signature_type": "Function",
"digest": {
"function_hash": "326159661770603411276768142024419050979",
"length": 601.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d4e6e2680807671e1c73cd6a986b33659ce92f2b",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c",
"function": "mt_report_fixup"
}
},
{
"id": "CVE-2025-39806-bc599b4c",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146383214016550122350976708047102441594",
"56865388551021104251031019229457896156",
"9664634023901034654548110675584317843",
"198081901954153666990845465373984211304"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c13e95587583d018cfbcc277df7e02d41902ac5a",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c"
}
},
{
"id": "CVE-2025-39806-be11cee3",
"signature_type": "Function",
"digest": {
"function_hash": "326159661770603411276768142024419050979",
"length": 601.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4263e5851779f7d8ebfbc9cc7d2e9b0217adba8d",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c",
"function": "mt_report_fixup"
}
},
{
"id": "CVE-2025-39806-be593002",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146383214016550122350976708047102441594",
"56865388551021104251031019229457896156",
"9664634023901034654548110675584317843",
"198081901954153666990845465373984211304"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4263e5851779f7d8ebfbc9cc7d2e9b0217adba8d",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c"
}
},
{
"id": "CVE-2025-39806-ced7f9e0",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146383214016550122350976708047102441594",
"56865388551021104251031019229457896156",
"9664634023901034654548110675584317843",
"198081901954153666990845465373984211304"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7ab7311c43ae19c66c53ccd8c5052a9072a4e338",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c"
}
},
{
"id": "CVE-2025-39806-d7221a1f",
"signature_type": "Function",
"digest": {
"function_hash": "188874095121357054041542529159342403145",
"length": 607.0
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0379eb8691b9c4477da0277ae0832036ca4410b4",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c",
"function": "mt_report_fixup"
}
},
{
"id": "CVE-2025-39806-ebf31361",
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"146383214016550122350976708047102441594",
"56865388551021104251031019229457896156",
"9664634023901034654548110675584317843",
"198081901954153666990845465373984211304"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0379eb8691b9c4477da0277ae0832036ca4410b4",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "drivers/hid/hid-multitouch.c"
}
}
]