REDHAT-BUG-2395807: Medium severity linux/kernel vulnerability
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 [...]
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Linux kernel HID multitouch mt_report_fixup()to a version that resolves this vulnerability.Patch HID: multitouch: fix slab out-of-bounds access in mt_report_fixup() - Configuration
Apply the fix in mt_report_fixup() so it checks the report descriptor length is sufficient (>= 608 bytes) before patching the byte at offset 607, preventing the slab out-of-bounds.
Linux kernel HID multitouch (mt_report_fixup) report descriptor bounds check for byte offset 607 = Ensure descriptor size is at least 608 before patching byte offset 607 (i.e., validate descriptor length >= 608)
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2395807?
The severity of REDHAT-BUG-2395807 is considered critical due to the potential for remote code execution.
How do I fix REDHAT-BUG-2395807?
To fix REDHAT-BUG-2395807, update the Linux kernel to version 6.15.0 or later.
What versions of Linux kernel are affected by REDHAT-BUG-2395807?
The affected versions of the Linux kernel are those prior to version 6.15.0.
What issues does REDHAT-BUG-2395807 address?
REDHAT-BUG-2395807 addresses a slab out-of-bounds access vulnerability in mt_report_fixup() in the Linux kernel.
Can a malicious HID device exploit REDHAT-BUG-2395807?
Yes, a malicious HID device can exploit REDHAT-BUG-2395807 by passing a report descriptor smaller than 607 bytes.