CVE-2026-74683

Summary

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

Input: evdev - sanitize event type index when fetching event masks

The user-supplied event type index passed to EVIOCGMASK / EVIOCSMASK ioctls is used to index the static counts array in evdev_get_mask_cnt() and client evmasks array in evdev_get_mask().

While the event type is architecturally bounded by EV_CNT, speculative execution may mispredict bounds checks and perform out-of-bounds loads.

Sanitize the event type index in evdev_get_mask_cnt() branchlessly using array_index_mask_nospec(). This clamps the index to 0 for safe array access and forces the returned count to 0 speculatively when the index is out of bounds.

We do not need additional array_index_nospec() calls in evdev_get_mask() because evdev_get_mask_cnt() speculatively forces the count (and resulting xfer_size) to 0 for out-of-bounds types, preventing any speculative memory access to client evmasks array.

Affected Software

VendorProductVersion RangeStatus
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < c79b08d8fa230871a3634e34a66e591ac2d084efaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f27fa9b39f925d26e034a1f382cb45523138f4aeaffected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < f3fc329acad9a71b3c077237cbac20670d2358c8affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 5db341189bb7ff041d570dbe36ecca7e32913927affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 433913b4a92214d76e9f0c03ad9128fec943d5f8affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 4034ef247a9dde3f56660b01f0c3280dac6b1274affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 810e1883d4815f29c30d900ad7333d03cc2515d1affected
LinuxLinux1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 3abd29c61d2ef37c4102cf755b18be53bb9dbea6affected
LinuxLinux0 < 5.10.265affected
LinuxLinux0 < 5.15.216affected
LinuxLinux0 < 6.1.183affected
LinuxLinux0 < 6.6.152affected
LinuxLinux0 < 6.12.104affected
LinuxLinux0 < 6.18.45affected
LinuxLinux0 < 7.1.9affected
LinuxLinux5.10.265 <= 5.10.*unaffected
LinuxLinux5.15.216 <= 5.15.*unaffected
LinuxLinux6.1.183 <= 6.1.*unaffected
LinuxLinux6.6.152 <= 6.6.*unaffected
LinuxLinux6.12.104 <= 6.12.*unaffected
LinuxLinux6.18.45 <= 6.18.*unaffected
LinuxLinux7.1.9 <= 7.1.*unaffected
LinuxLinux7.2 <= *unaffected

Weaknesses

References