Description
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 products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
06a16293f71927f756dcf37558a79c0b05a91641 to < c79b08d8fa230871a3634e34a66e591ac2d084efaffected06a16293f71927f756dcf37558a79c0b05a91641 to < f27fa9b39f925d26e034a1f382cb45523138f4aeaffected06a16293f71927f756dcf37558a79c0b05a91641 to < f3fc329acad9a71b3c077237cbac20670d2358c8affected06a16293f71927f756dcf37558a79c0b05a91641 to < 5db341189bb7ff041d570dbe36ecca7e32913927affected06a16293f71927f756dcf37558a79c0b05a91641 to < 433913b4a92214d76e9f0c03ad9128fec943d5f8affected06a16293f71927f756dcf37558a79c0b05a91641 to < 4034ef247a9dde3f56660b01f0c3280dac6b1274affected06a16293f71927f756dcf37558a79c0b05a91641 to < 810e1883d4815f29c30d900ad7333d03cc2515d1affected06a16293f71927f756dcf37558a79c0b05a91641 to < 3abd29c61d2ef37c4102cf755b18be53bb9dbea6affected
Linux Linux
Default version status: affected
4.4affected0 to < 4.4unaffected5.10.265 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.152 to ≤ 6.6.*unaffected6.12.104 to ≤ 6.12.*unaffected6.18.45 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/c79b08d8fa230871a3634e34a66e591ac2d084ef ↗
- https://git.kernel.org/stable/c/f27fa9b39f925d26e034a1f382cb45523138f4ae ↗
- https://git.kernel.org/stable/c/f3fc329acad9a71b3c077237cbac20670d2358c8 ↗
- https://git.kernel.org/stable/c/5db341189bb7ff041d570dbe36ecca7e32913927 ↗
- https://git.kernel.org/stable/c/433913b4a92214d76e9f0c03ad9128fec943d5f8 ↗
- https://git.kernel.org/stable/c/4034ef247a9dde3f56660b01f0c3280dac6b1274 ↗
- https://git.kernel.org/stable/c/810e1883d4815f29c30d900ad7333d03cc2515d1 ↗
- https://git.kernel.org/stable/c/3abd29c61d2ef37c4102cf755b18be53bb9dbea6 ↗